Как сбросить свойство в ANT? - PullRequest
       10

Как сбросить свойство в ANT?

2 голосов
/ 17 сентября 2010

Я пишу макрос скорости, в рамках которого у меня есть несколько задач муравья.В цикле #foreach в макросе скорости у меня есть задача pathconvert:

#foreach(<iterate through something>)        
        <pathconvert property='filename' refid='swf.file'>
          <mapper>
            <chainedmapper>
                <flattenmapper/>
                <globmapper from='*-d.swf' to='*'/>
            </chainedmapper>
          </mapper>
        </pathconvert>
#end

У меня проблема в том, что свойство 'filename' устанавливается только один раз, во время первой итерации, так как свойства в ANTнеизменны.Но мне нужно, чтобы имя файла было установлено во время каждой итерации.Есть ли способ сделать это?

Если бы был способ сбросить свойство, я мог бы сделать это в конце каждой итерации.Или есть лучший способ сделать это?Любая помощь будет принята с благодарностью!

Заранее спасибо, Ананд

Ответы [ 4 ]

4 голосов
/ 17 сентября 2010

Вы можете использовать переменные ant-contrib. Они действуют как изменяемые свойства.

http://ant -contrib.sourceforge.net / задачи / задачи / variable_task.html

3 голосов
/ 17 сентября 2010

Используйте новые лексически ограниченные свойства в Ant 1.8:

"Лексически ограниченные локальные свойства, то есть свойства, которые определены только в целевом, последовательном блоке или аналогичной среде."

Объявление.

Свойства в Ant спроектированы так, чтобы быть неизменными, но они уступали популярному спросу и давали нам переменные.Ваша альтернатива - написать пользовательское задание (на Java или на динамическом языке), но это кажется хорошим компромиссом.

0 голосов
/ 29 февраля 2012

Используйте комбинацию for + let task из Ant Plugin Flaka , чтобы перезаписать существующие свойства. Смотрите некоторые фрагменты здесь .

0 голосов
/ 29 февраля 2012

Следующий фрагмент иллюстрирует свойство ant, которое, я думаю, не задокументировано. Свойства неизменны, но ссылки изменяемы .Таким образом, любой тип данных, который не имеет имени, кроме ссылки, является изменяемым.Например, fileset.Но сегодня я нашел способ иметь некое изменчивое свойство.Связанный с задачей local или некоторыми другими приемами, это может быть способ иметь переменные в муравье.

<property name="a" value="aaa" id="refa" />
<property name="b" refid="refa" />
<echo>${b}</echo>
<property name="c" value="ccc" id="refa" />
<property name="d" refid="refa" />
<echo>${d}</echo>

Вывод:

aaa
ccc

Хотя в обоих случаях ссылка refa печатается.

Вот сообщение об этом еще один .

...