Изменить глобальную переменную Ant - PullRequest
1 голос
/ 09 февраля 2012

Я хочу изменить «переменную» в файле 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 ]

2 голосов
/ 10 февраля 2012

Либо использовать:

<target name="change-me">
    <variable name="foo" unset="true"/>
    <variable name="foo" value="world"/>
</target>

, как уже упоминал Оерс в своем комментарии к вашему вопросу, или используйте более простой подход
с let task из муравьиной надстройки 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>
0 голосов
/ 19 января 2013

Это будет работать, если вы используете теги ant-contrib.

...