Изменить заданную по умолчанию цель муравья аргументом командной строки - PullRequest
2 голосов
/ 21 июня 2010

Недавно мне поставили задачу сделать так, чтобы ant мог создавать военные пакеты для разных сред.Я почти закончил, кроме одной функции.

Муравей принимает параметр env, например -Denv=DEV, и использует различные файлы конфигурации для создания пакета war.Но целью по умолчанию является start, которая будет собирать, развертывать и запускать кота.Я не хочу, чтобы ant развернул войну и не запустил сервер, когда я передал аргумент -Denv=PROD.Я только хочу, чтобы муравей создал ROOT.war.Этого достаточно.

Я знаю, что могу просто ввести еще одно слово для достижения этой цели, но вы знаете, что мы все ленивы.: D

Кто-нибудь знает, как изменить цель по умолчанию в соответствии с аргументом командной строки?Мои требования следующие:

  1. ant -Denv=DEV создаст, развернет и запустит сервер
  2. ant -Denv=PROD построит только ROOT.war

Ответы [ 3 ]

4 голосов
/ 21 июня 2010

Я предлагаю вам определить цели в вашем файле build.xml с именами "DEV" и "PROD", а затем вызвать Ant как:

ant DEV

или

ant PROD

Если вы хотите придерживаться своего текущего подхода к использованию системного свойства для выбора цели, то ответ @ krock, похоже, является подходящим вариантом. (Но я не вижу никакого преимущества в этом подходе.)

2 голосов
/ 21 июня 2010

Вы также можете загружать различные файлы свойств на основе свойства env:

<property file="${env}.properties"/>

и настройте цель для вызова:

в DEV.properties:

default.target=dev.build

в PROD.properties:

default.target=prod.build

, а затем вызвать цель на основе свойства:

<target name="default">
    <antcall target="${default.target}"/>
</target>

<target name="dev.build">
    ....
</target>

<target name="prod.build">
    ....
</target>

, указав отдельные файлы свойств для каждого типа сборки, вы упростите настройку других аспектов сборки.

0 голосов
/ 21 июня 2010

в коллекции ant-contrib есть задание "if".Используя это, вы можете определить задачу по умолчанию, которая проверяет ваш параметр и вызывает необходимые задачи.Вы также можете определить поведение по умолчанию, если параметр dev не установлен.

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