Comment puis-je obtenir une liste des cibles de construction dans Ant?

193

Ma base de code a un long build.propertiesfichier écrit par quelqu'un d'autre. Je veux voir les cibles construites disponibles sans avoir à rechercher manuellement dans le fichier. Ant a-t-il une commande pour cela - quelque chose comme ant show-targets- qui lui fera lister toutes les cibles dans le fichier de construction?

Shwetanka
la source

Réponses:

265

L' option -pou -projecthelpfait exactement cela, vous pouvez donc simplement essayer:

ant -p build.xml

À partir de la documentation en ligne de commande de fourmi :

L' -projecthelpoption imprime une liste des cibles du fichier de construction. Les cibles qui incluent un descriptionattribut sont répertoriées comme "Cibles principales", celles sans cible descriptionsont répertoriées comme "Autres cibles", puis la cible "Par défaut" est répertoriée ("Autres cibles" ne sont affichées que s'il n'y a pas de cibles principales, ou si Ant est appelée en mode -verboseou -debug).

Grodriguez
la source
35
Pour en faire la antcible par défaut lors de l'appel , créez une cible comme <target name="help"> <java classname="org.apache.tools.ant.Main"> <arg value="-projecthelp" /> <arg value="-buildfile" /> <arg value="${ant.file}" /> </java> </target>et faites de "help" la cible par défaut dans votre projet.
sschuberth
18
Je pense qu'il vaut la peine de noter que ant -pseuls les objectifs qui ont des descriptions seront affichés. Pour afficher chaque cible associée à un build.xmlfichier, vous devez exécuter ant -p -vaussi, ant -p build.xmlest redondant. ant -pfera la même chose, et si vous n'êtes pas dans le build.xmlrépertoire, vous devrez de ant -p -buildfile path/to/build.xmltoute façon utiliser .
Andrew
1
la target name="help"chose fonctionne bien, mais pas lorsqu'elle est exécutée dans l'environnement Eclipse Ant (elle se bloque juste, mais -diagnosticsou d'autres sont d'accord) :-( (pas de vm fork, Kepler avec ant 1.8.4 (2014-05-22) et a également essayé avec ant 1.9.4 (2014-04-29)) (juste si vous vous demandez ... je créais un environnement de fourmi autonome que j'aimerais tester dans Eclipse ... bien sûr, j'ai mon Ant View là)
Andreas Dietrich
34

Pour obtenir toutes les cibles dans le fichier de construction

fourmi -p -verbose

Shweta
la source
1
nous devons utiliser -p associé à -v Si nous avons besoin de toutes les cibles (par toutes les cibles, j'entends également les cibles sans description). si Seules les cibles principales sont requises (par les cibles principales, je veux dire celles qui contiennent une description) en utilisant -p seul fait l'affaire.
Wills
2
Je ne pouvais pas voir les cibles dont j'ai besoin avec seulement -p, cela fonctionne parfaitement.
JacopKane
15

L' option -pou -projecthelpfait exactement cela, vous pouvez donc faire:

ant -p build.xml

Vous pouvez créer une cible pour invoquer ceci comme:

<target name="help">
    <java classname="org.apache.tools.ant.Main">
        <arg value="-projecthelp" />
        <arg value="-buildfile" />
        <arg value="${ant.file}" />
    </java>
</target>

que vous pouvez ensuite définir comme valeur par défaut, il suffit donc de taper ant pour répertorier les cibles disponibles.

(Combinant la réponse de @Grodriguez et le commentaire de @ sschuberth - je pensais que cela valait la peine d'une réponse en soi)

rjmunro
la source
5
petite suggestion. faire de la cible "help" par défaut. En conséquence, l'exécution de "fourmi" invoquera la cible "help" qui affichera toutes les cibles disponibles.
user1697575
0

Vous pouvez vérifier la liste des cibles et des cibles par défaut dans build.xml à l'aide de la commande suivante

ant -p built.xml

Jainesh Patel
la source