Свойство переопределения загрузочного файла Ant - PullRequest
4 голосов
/ 19 марта 2011

Я пытаюсь использовать задачу Ant <loadfile> в цикле для анализа содержимого файла. У меня есть что-то вроде

<loadfile srcFile="@{some.input}" property="my.property">

Поскольку свойства Ant неизменны, это не работает для меня. Мне нужно «my.property» для обновления на каждой итерации. Есть ли способ добиться этого? Я знаю, что у Ant-contrib есть задача <var>, но я не уверен, как использовать <loadfile> с ней.

Есть рекомендации?

Спасибо.

Ответы [ 7 ]

6 голосов
/ 08 июня 2011
<loadfile property="foo" srcfile="bar.txt"/>

 ... do some actions, perhaps in a <for> loop ...

<var name="foo" unset="true"/>

Затем вы можете снова использовать foo в <loadfile>

1 голос
/ 23 мая 2012

Одной из встроенных задач, которые могут переопределить значение свойства, является script.

Ниже приведен скрипт и вывод, подтверждающий изменение значения свойства.

<project name="test">
  <property name="bshJar" value="C:\lang\java\bsh-1.3.0.jar:C:\lang\java\bsf.jar:C:\lang\java\commons-logging-1.1.1.jar" />
  <property name="a" value="first" />
  <echo>a=${a}</echo>
  <script manager="bsf" language="beanshell" classpath="${bshJar}"><![CDATA[
  project.setProperty("a", "fourth");
  ]]></script>
  <echo>a=${a}</echo>
</project>

Выход:

a=first
a=fourth
1 голос
/ 21 марта 2011

Ant contrib также имеет задачу var, которая отменяется.

Удачи: принято принимать один из ответов, чтобы люди знали, что вопрос решен.Я рекомендую принять Гилберта, так как он сначала публикует правильный ответ.

0 голосов
/ 12 августа 2013

Вы можете создать новое свойство в вашем MacroDef для каждого srcFile:

<loadfile srcFile="@{some.input}" property="@{some.input}_Prop">

<echo message="@{some.input} Contents: ${@{some.input}_Prop}"/>
0 голосов
/ 22 мая 2013

Вы пробовали скрипт в ANT.

<script language="javascript">
project.setProperty("my.property", "somevalue");
</script>
0 голосов
/ 20 марта 2011

Плагин Ant Flaka предоставляет задачу let, позволяющую перезаписывать существующие свойства или переменные, подобные этим =

<project xmlns:fl="antlib:it.haefelinger.flaka">

<property name="my.property" value="value"/>
<fl:let> my.property ::= 'anothervalue'</fl:let>

</project>

Так что нет необходимости сначала сбрасывать, а потом устанавливать. Кстати. У Флаки тоже есть неустановленная задача; -)

0 голосов
/ 19 марта 2011

Я только что использовал задачу <unset>, предоставленную Антилопой http://antelope.tigris.org/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...