Как сделать муравьиные мишени эксклюзивными друг для друга? - PullRequest
1 голос
/ 09 марта 2011

В ANT легко установить целевую зависимость с помощью атрибута target.depends.

Но как я могу настроить некоторые цели, чтобы они были исключительными друг для друга. Так он проверит целевую комбинацию, прежде чем выполнить их?

Ответы [ 2 ]

4 голосов
/ 09 марта 2011

Вы можете заставить каждое из них определять общее свойство и выполняться, только если это свойство еще не установлено:

<target name="a" unless="aOrBAlreadyRun">
    <property name="aOrBAlreadyRun" value="true"/>
    ...
</target>

<target name="b" unless="aOrBAlreadyRun">
    <property name="aOrBAlreadyRun" value="true"/>
    ...
</target>

См. http://ant.apache.org/manual/targets.html для объяснений.

РЕДАКТИРОВАТЬ:

Если вы хотите, чтобы сборка завершилась неудачно при выполнении обеих целей, то произойдет сбой, если свойство уже установлено:

<target name="a">
    <fail if="aOrBAlreadyRun" 
          message="You can't have a and b executed in the same build"/>
    <property name="aOrBAlreadyRun" value="true"/>
    ...
</target>

<target name="b">
    <fail if="aOrBAlreadyRun" 
          message="You can't have a and b executed in the same build"/>
    <property name="aOrBAlreadyRun" value="true"/>
    ...
</target>
0 голосов
/ 13 июля 2011

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

Только не записывайте их в один и тот же файл build.xml, а сделайте его копию и измените две версии соответственно.

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