最大的区别是,Ant 将确保通过 声明的依赖项最多调用一次。例如:depends
<target name="a" />
<target name="b" depends="a" />
<target name="c" depends="a" />
<target name="d" depends="b, c" />
如果我调用 target ,并且被调用。但是,只调用一次(即使两者都依赖于它)。d
b
c
a
b
c
现在假设我们决定使用而不是依赖目标:antcall
d
<target name="d">
<antcall target="b" />
<antcall target="c" />
</target>
调用目标现在将调用目标和 ;但是,目标将被调用两次,一次用于,然后再次用于 。d
b
c
a
b
c
换句话说,避开了作为 Ant 基石的正常依赖规则。antcall
我不认为应该被用作正常蚂蚁式依赖关系的替代品;这就是目的。那么你什么时候会使用它呢?该任务确实允许您控制定义哪些属性和引用(这就是创建新的Ant环境的原因 - 以及为什么它如此缓慢),因此它可用于创建相同事物的变体;例如,可能是两个jar,一个带有调试符号,一个没有调试符号。antcall
depends
antcall
但是,过度使用会产生缓慢、脆弱且难以维护的构建脚本。把它想象成蚂蚁——它是邪恶的。大多数写得好的构建脚本根本不需要它,除非在特殊情况下。antcall
goto