Subant目标而不是ant

use*_*152 2 ant

我遇到了subant问题而且没有任何想法.有人可以帮忙吗?使用Ant替换其他字符串(即"Foo"和"1.2"的Productname和Version)我使用了这样的东西:

<copy todir="${Foo_Home}\cm_builds\Deployment\Database\Production.win\">
    <fileset dir="${Foo_Home}\Deployment\Database\Production.win\"
             includes="**/*.sql,**/*.cmd"/>
    <filterset>
        <filter token="PRODUCTNAME" value="Foo"/>
        <filter token="VERSION" value="1.2"/>
    </filterset>
</copy>
Run Code Online (Sandbox Code Playgroud)

我们可以通过subant做同样的事情吗?由于copyreplacetoken等不受subant支持.但我们需要完全不足......

像这样的东西:

<subant target="build" genericantfile="build.xml">
  <dirset dir="${Foo_Home}\cm_builds\Deployment\Database\Production.win\"
          includes ="**/*.sql">
</subant>
Run Code Online (Sandbox Code Playgroud)

这是使用subant的正确方法吗?(假设我们有几个像这样的目标)

http://ant.apache.org/manual/Tasks/subant.html寻求帮助=)

更新:

我怀疑我以错误的方式使用subant.也许没有必要尝试使subant运行与ant相同的任务?也许我应该在必需的目录中制作subant run ant并且不要为ant更改任何内容?

Jas*_*Day 5

我不明白你试图做什么,或者你的意思是"副本和替换语言等不被支持者支持".该subant任务用于在多个目录中调用Ant构建.例如,假设你有一个属性${top}是指向包含命名的子目录的目录one,twothree.然后你可以使用一个subant任务在每个子目录中调用Ant,如下所示:

<subant genericantfile="${top}/build.xml" target="build">
    <!-- include all subdirectories in ${top} -->
    <dirset dir="${top}"/>
</subant>
Run Code Online (Sandbox Code Playgroud)

这大致相当于命令提示符下的以下命令(假设目录top位于/work/top):

$ cd /work/top
$ cd one
$ ant -f ../build.xml build
$ cd ../two
$ ant -f ../build.xml build
$ cd ../three
$ ant -f ../build.xml build
Run Code Online (Sandbox Code Playgroud)

最后,您的使用dirset不正确.一个dirset是一组目录,而不是文件,所以你的dirset上面将包括所有的目录,与结束.sql,我怀疑是不是你想要的.