Ant var и область действия свойства - PullRequest
7 голосов
/ 03 февраля 2010

У меня есть основной скрипт сборки, который вызывает различные цели.Одна из этих целей должна хранить значение, а другая должна отображать его.Очевидно, что это не работает, поэтому я думаю, что это может быть связано с областью применения.Я пробовал var, property и объявление свойства вне target1.Поскольку var кажется изменчивым, похоже, что мне нужно использовать его вместо этого, но каждый раз, когда мой вывод пуст*

На дисплее:

<echo>${myVar}</echo>

Ответы [ 5 ]

4 голосов
/ 03 февраля 2010

Вам действительно нужно использовать ? Можете ли вы вместо этого использовать целевые зависимости?

Как вы подозреваете, использование по сути создает новую область.

4 голосов
/ 03 февраля 2010

antcall запустит цель ant в новом проекте и никак не повлияет на основной проект. Попробуйте запустить runtarget из antcontrib для запуска целей в том же проекте.

2 голосов
/ 03 февраля 2010

Другой вариант, который я нашел, был antcallback, и, похоже, он работает. Это ограничивает то, что возвращается только определенным списком значений, что кажется более безопасным, чем открытие области видимости всей цели (поскольку она устанавливает, создает, изменяет многие переменные и свойства).

<antcallback target="target1" return="myVar"/>
<antcall target="display"/>

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

2 голосов
/ 03 февраля 2010

Вы можете вызвать несколько целей с одним элементом antcall. Эти цели будут совместно использовать один экземпляр проекта, включая определенные свойства. Для этого укажите цели как вложенные элементы, например:

<antcall>
  <target name="target1"/>
  <target name="display"/>
</antcall>
0 голосов
/ 15 мая 2012
<antcall target="display">
   <param name="param1" value="anything" />
</antcall>

поместите вышеуказанный код в вашу цель1. Я уверен, что теперь вы сможете получить доступ к вашему параметру param1.

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