修改全局变量Ant

时间:2012-02-09 13:46:31

标签: ant ant-contrib

我想在一个目标中更改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>

虽然我想要它打印:'你好,世界',它打印'你好,你好'

2 个答案:

答案 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标签,这将有效。