Запуск цели 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 установлено (опять же, на любое значение), цель не будет запущена.

Пожалуйста, смотрите любые цели для получения дополнительной информации.

Другие вопросы по тегам