Выдает ошибку, если переменная не определена в Ant - PullRequest
12 голосов
/ 28 марта 2011

Мне нужно, чтобы пользователь определил переменную во время компиляции, мне все еще нужно решить, будет ли она переменной окружения или свойством (ant -Dname=value).

Как я могу вызвать ошибку во время компиляции, если переменная не была определена пользователем?

Ответы [ 2 ]

20 голосов
/ 28 марта 2011

Просто добавьте:

<fail unless="var1" message="var1 is not set"/>

Если var1 не установлен, сборка завершится неудачей.

9 голосов
/ 28 марта 2011

По первому вопросу:

Если переменная предназначена для условий среды вне приложения, сделайте ее переменной среды (ОС).В противном случае, сделайте это собственностью.Очевидно, что это не полностью отвечает на ваш вопрос, поскольку вам все еще нужно определить, что это значит (для вашего приложения или системы), чтобы сказать, что переменная зависит от среды .

Другим руководством было бы спросить себя, можете ли вы (или будете иметь) более одного приложения, которое зависит от разных значений одной и той же переменной, причем все они могут быть развернуты в одной и той же системе.В таком случае мы не можем использовать переменную окружения, а переменные на основе свойств - единственный путь.

Для второго вопроса:

Использовать встроенные в Antв Fail задача по отмене сборки, если условие или свойство не задано.Из документации Ant по задаче Fail вы можете получить представление о том, как это сделать, если вы используете переменную на основе свойств:

  <fail>
     <condition>
       <not>
         <isset property="thisdoesnotexist"/>
       </not>
     </condition>
   </fail>

Есливы решаете использовать переменную среды; вы просто используете атрибут environment задачи Property , чтобы подключиться к переменным среды (OS)как если бы они были свойствами сборки (см. соответствующую документацию для примеров.)

Надеюсь, это поможет.

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