2011-03-09 5 views

Répondre

4

Vous pouvez faire chacun d'entre eux définissent une propriété commune et être exécutés que si cette propriété est pas encore défini:

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

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

Voir http://ant.apache.org/manual/targets.html des explications.

EDIT:

Si vous voulez que la construction d'échouer lorsque les cibles sont exécutées, puis échouer si la propriété est déjà définie:

<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

Il vérifie et ignore après que l'un soit exécuté, sans avertissement ni message d'erreur. –

+0

Voulez-vous dire que vous souhaitez que la sortie de Ant se termine par une erreur si les deux cibles sont exécutées? –

+0

Cool. Il est possible de le prévenir avant? ne l'arrête pas après? –

0

La meilleure façon de le faire exclusif est très simple. Il suffit de ne pas les écrire dans le même fichier build.xml mais de faire une copie de celui-ci et de modifier deux versions en conséquence.

Questions connexes