我遇到了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做同样的事情吗?由于copy和replacetoken等不受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更改任何内容?
我不明白你试图做什么,或者你的意思是"副本和替换语言等不被支持者支持".该subant任务用于在多个目录中调用Ant构建.例如,假设你有一个属性${top}是指向包含命名的子目录的目录one,two和three.然后你可以使用一个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,我怀疑是不是你想要的.