2012-03-21 3 views
0

je doute, je fait ce fichier de construction afin de construire 3 différents projetsconstruire de multiples projets et propres projets multiples dans un seul fichier de construction avec ANT

<?xml version="1.0" encoding="UTF-8"?> 
<project name="Trinity" basedir="." default="buildall"> 

    <target name="project1"> 
     <ant dir="C:/work/project1"/> 
    </target> 

    <target name="project2" depends="project1"> 
     <ant dir="C:/work/project2"/> 
    </target> 

    <target name="project3" depends="project1, project2"> 
     <ant dir="C:/work/project3"/> 
    </target> 

    <target name="buildall" depends="project3"/> 

</project> 

Cela fonctionne maintenant. Mais je voulais aussi nettoyer le projet avant de faire la construction.

En fait, je veux acomplish ceci: C:/travail/project1 fourmi construction propre C:/travail/ant Projet2 construction propre C:/travail/ant projet3 construction propre

de Merci à l'avance. Mise à jour: Merci à la réponse rapide d'Alex, j'ai fait un nouveau fichier build.xml avec ce qui suit. Et je crois que cela fonctionne bien, qu'en pensez-vous?

<?xml version="1.0" encoding="UTF-8"?> 
<project name="Trinity" basedir="." default="buildall"> 

    <target name="project1"> 
     <ant dir="C:/work/project1" target="clean"/> 
     <ant dir="C:/work/project1" target="build"/> 
    </target> 

    <target name="project2" depends="project1"> 
     <ant dir="C:/work/project2" target="clean"/> 
     <ant dir="C:/work/project2" target="build"/> 
    </target> 

    <target name="project3" depends="project1, project2"> 
     <ant dir="C:/work/project3" target="clean"/> 
     <ant dir="C:/work/project3" target="build"/> 
    </target> 

    <target name="buildall" depends="project3"/> 

</project> 

Merci.

+1

Stop! Avez-vous vraiment trois projets? Si c'est le cas, utilisez [Ivy] (http://ant.apache.org/ivy/) pour les gérer en tant que projets séparés et abandonnez votre fichier de construction parent. Si ce n'est pas le cas, ayez juste un fichier de construction pour les trois parties de votre projet (http://www.build-doctor.com/2008/03/19/ant-best-practices-prefer-a-single-buildfile/ –

Répondre

1

Selon le ant task, vous pouvez spécifier les cibles de la fourmi externe créer des fichiers

<ant dir="C:/work/project1" target="clean build"> 

Edit:

Selon la documentation ant:

Vous pouvez spécifier plusieurs cibles utilisant des éléments imbriqués au lieu d'utiliser l'attribut target. Ceux-ci seront exécutés comme si Ant avait été invoqué avec une seule cible dont les dépendances sont les cibles ainsi spécifiées, dans l'ordre spécifié.

Vous pouvez lister plusieurs cibles de cette façon:

<ant dir="C:/work/project1"> 
    <target name="clean" /> 
    <target name="build" /> 
</ant> 

Vous pouvez également définir une nouvelle cible dans les fichiers build.xml Project1,2,3 appelé cleanBuild qui appellera à son tour clean suivi par build si vous souhaitez le conserver en tant qu'élément xml unique <ant dir="C:/work/project1" target="cleanBuild">

+0

hmm .. J'ai essayé cela mais n'est pas précis. Cette commande "build propre" ne semble pas fonctionner de mon côté. – Juano7894

+0

avez-vous des cibles 'clean' et' build' dans les 3 fichiers build.xml? – Alex

+0

oui .. Si j'aime bien je l'ai dit dans ma mise à jour de ma question, alors travaille. Connaissez-vous un meilleur moyen? – Juano7894

Questions connexes