我有一个b.ant
内部使用的共享 ant 脚本antcall
。它计算客户端脚本使用的属性。我使用include
而不是import
客户端脚本来避免无意覆盖目标,但这给我带来了 antcall 的问题。
当使用include
所有目标时b
都是前缀,并且depends
属性b
会相应更新。然而,对于antcall
. 有没有办法处理这个问题,即antcall
总是调用“本地”蚂蚁目标?
我可以通过使用来解决这个import
问题,但是我会遇到所有覆盖问题。不能用它来depends
代替 antcall。
示例文件
我有两个文件:
蚂蚁
<project>
<include file="b.ant" as="b" />
<target name="test-depends" depends="b.depend">
<echo>${calculated-property}</echo>
</target>
<target name="test-call" depends="b.call">
<echo>${calculated-property}</echo>
</target>
</project>
b.ant
<project>
<target name="depend" depends="some-target">
<property name="calculated-property" value="Hello World"/>
</target>
<target name="call">
<antcall target="some-target" inheritrefs="true"/>
<property name="calculated-property" value="Hello World"/>
</target>
<target name="some-target"/>
</project>
示例输出
调用test-depend
按预期工作,但test-call
输出失败:
b.call:
BUILD FAILED
D:\ws\rambo2\ws-dobshl\ant-test\b.ant:6: The following error occurred while executing this line:
Target "some-target" does not exist in the project "null".
Total time: 258 milliseconds