Запуск цели Ant при определенных условиях
У меня есть следующие цели Ant в моем project.xml:
<target name="to.run.under.conditions">
</target>
<target name="deploy1">
<antcall target="deploy2"/>
</target>
<target name="deploy2">
<antcall target="to.run.under.conditions"/>
</target>
<target name="another.target">
<antcall target="deploy1"/>
</target>
Мое намерение состоит в том, чтобы иметь возможность исключить цель to.run.under.conditions
при беге another.target
, Я не очень знаком с ANT, и я изо всех сил пытаюсь понять, как подойти к проблеме. Я пытался нанять unless="${target.running}"
в и установите свойство как истинное в задаче условия внутри
target name ="target.running"
Вы можете помочь с этим?
Спасибо за помощь,
Я.
---- РЕДАКТИРОВАТЬ ОБНОВЛЕННОЕ РЕШЕНИЕ ----
Это моя текущая попытка (я использую ANT 1.8.2):
<target name="to.run.under.conditions" if="${target.running}">
</target>
<target name="another.target">
<property name="target.running" value="false"/>
</target>
Если я не ошибаюсь, так как свойство установлено в false внутри another.target
, затем to.run.under.conditions
не должен быть запущен (хотя я могу ошибаться). Имеет ли это смысл? Любой комментарий высоко ценится!
2 ответа
Я закончил с этим решением, которое, кажется, работает как ожидалось:
<target name="deploy2">
<if>
<equals arg1="${target.running}" arg2="true" />
<then>
<echo message="the target will not run" />
</then>
<else>
<echo message="the target will run" />
<antcall target="to.run.under.conditions"/>
</else>
</if>
</target>
<target name="to.run.under.conditions">
</target>
<target name="another.target">
<property name="target.running" value="true"/>
</target>
Надеюсь это поможет,
Я.
Попробуй это:
<target name="build-module-A" if="module-A-present"/>
<target name="build-own-fake-module-A" unless="module-A-present"/>
В первом примере, если для свойства module-A-present установлено (любое значение, например, false), цель будет запущена. Во втором примере, если свойство module-A-present установлено (опять же, на любое значение), цель не будет запущена.
Пожалуйста, смотрите любые цели для получения дополнительной информации.