我有两个 Ant 任务。如果我从命令行一个接一个地运行它们——没问题。
但是,如果我将它们包含在像这样的另一个任务的依赖depends='taskA,taskB'
属性中,我会得到错误的结果。
依赖项是按顺序运行而不是按顺序运行吗?无需深入了解 ant 任务的细节——有什么想法吗?
ANT 只执行一次相关任务……下面的例子说明了这种奇怪的行为。
这属于功能而不是错误的类别。这正是 ANT 的工作方式。需要记住的是,ANT 并非设计为过程编程语言。
如果您的子任务本质上是程序性的,则最好将其作为宏定义调用(或者更好地再次创建可重用的构建函数 antlib)。
$ ant
Buildfile: /path/to/my/home/build.xml
subtask1:
[echo] hello world
subtask2:
[echo] hello world
build1:
[echo] hello world
build2:
[echo] hello world
build:
BUILD SUCCESSFUL
<project name="demo" default="build">
<target name="build" depends="build1,build2"/>
<target name="build1" depends="subtask1,subtask2">
<echo message="hello world"/>
</target>
<target name="build2" depends="subtask1,subtask2">
<echo message="hello world"/>
</target>
<target name="subtask1">
<echo message="hello world"/>
</target>
<target name="subtask2">
<echo message="hello world"/>
</target>
</project>