我想在一个目标中更改Ant文件中的“变量”,并在另一个目标中看到该更改。
<variable name="foo" value="hello" />
<target name="print-me">
<echo message="${foo}" />
<antcall target="change-me" />
<echo message="${foo}" />
</target>
<target name="change-me">
<variable name="foo" value="world" />
</target>
虽然我想要它打印:'你好,世界',它打印'你好,你好'
答案 0 :(得分:2)
使用:
<target name="change-me">
<variable name="foo" unset="true"/>
<variable name="foo" value="world"/>
</target>
正如他们在对您的问题的评论中已经提到的那样,或者使用let task
Ant addon Flaka的更为直截了当的方法:
<project xmlns:fl="antlib:it.haefelinger.flaka">
...
<!-- overwrite any existing property or userproperty
(those properties defined on the commandline via -Dfoo=bar ..) -->
<fl:let> foo ::= 'world'</fl:let>
...
</project>
答案 1 :(得分:-1)
如果你使用ant-contrib标签,这将有效。