Ant依赖属性导致错误行为

时间:2013-07-12 20:05:51

标签: ant

我有两个Ant任务。如果我从命令行一个接一个地运行它们 - 没问题。

但如果我将它们包含在此depends='taskA,taskB'之类的其他任务的depends属性中,我会得到错误的结果。

依赖是依次运行而不是按顺序运行?没有涉及蚂蚁任务的具体细节 - 任何想法?

1 个答案:

答案 0 :(得分:0)

ANT只执行一次依赖任务...下面的例子说明了这种奇怪的行为。

这属于功能类别而不是bug。这就是ANT的工作方式。需要记住的是,ANT并非设计为过程式编程语言。

如果您的子任务本质上是程序性的,那么最好将其作为macrodef调用(或者更好地再次创建可重复使用的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

的build.xml

<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>