2009-06-23 7 views
0

Nous avons un script de construction de fourmi qui contient ce bit:projets Passer avec ant Iterate projets

<target name="test"> 
    <antcall target="iterate-projects"> 
    <param name="test-depends" value="false" /> 
    <param name="target" value="test" /> 
    </antcall> 
</target> 

J'aimerais sauter tester certains de nos projets, car ils sont très grandes et contiennent des tests 3ème partie . Quelque chose comme

if (library.name().startsWith("lucene")) 
    continue 

Comment puis-je mettre en œuvre cette fourmi dans?

Répondre

0

Vous pouvez utiliser cette technique:

<target name="lucene" unless="skip_test"> 
... 
</target> 

Pour sauter la cible que vous devez définir la propriété

<target name="test"> 
    <property name="skip_test" value="true"/> 
    <antcall target="iterate-projects"> 
    <param name="test-depends" value="false" /> 
    <param name="target" value="test" /> 
    </antcall> 
</target> 
+0

Je ne comprends pas cette solution (je ne sais rien sur Ant). Qu'est-ce qui se passe dans le '...'? Je ne veux pas définir une cible distincte pour lucence, je veux que ma cible de test principale saute des projets lucene. – ripper234

+0

Je m'attends à ce que vous ayez une tâche "lucene". Si vous pouvez le modifier et ajouter la partie 'unless = "skip_test"', mon exemple fonctionnera. – FoxyBOA

0

Le projet Ant Contrib contient des tâches de contrôle de flux utiles mais brut, y compris <if>. Vous pourriez probablement enchaîner cela avec les autres tâches de la bibliothèque pour obtenir le chapeau dont vous avez besoin.