Wie kann ich eine Liste der Build-Ziele in Ant abrufen?

191

Meine Codebasis enthält eine lange build.propertiesDatei, die von jemand anderem geschrieben wurde. Ich möchte die verfügbaren erstellten Ziele anzeigen, ohne die Datei manuell durchsuchen zu müssen. Hat ant einen Befehl dafür - so etwas wie ant show-targets-, mit dem alle Ziele in der Build-Datei aufgelistet werden?

Shwetanka
quelle

Antworten:

263

Die Option -poder -projecthelpmacht genau das, also können Sie einfach versuchen:

ant -p build.xml

Von der Kommandozeile Ameise Dokumentation :

Die -projecthelpOption druckt eine Liste der Ziele der Build-Datei aus. Ziele, die ein descriptionAttribut enthalten, werden als "Hauptziele" aufgeführt, solche ohne " descriptionwerden als" Andere Ziele "aufgeführt, dann wird das" Standard "-Ziel aufgelistet (" Andere Ziele "werden nur angezeigt, wenn keine Hauptziele vorhanden sind oder wenn Ant wird im Modus -verboseoder aufgerufen -debug).

Grodriguez
quelle
35
Um dies beim Aufrufen zum Standard zu machen ant, erstellen Sie ein Ziel wie <target name="help"> <java classname="org.apache.tools.ant.Main"> <arg value="-projecthelp" /> <arg value="-buildfile" /> <arg value="${ant.file}" /> </java> </target>und machen Sie "Hilfe" zum Standardziel in Ihrem Projekt.
sschuberth
18
Ich denke, es ist erwähnenswert, dass ant -pnur Ziele angezeigt werden, die Beschreibungen haben. Um jedes einer build.xmlDatei zugeordnete Ziel anzuzeigen, müssen Sie ausführen. ant -p -vIst außerdem ant -p build.xmlredundant. ant -pwird das gleiche tun, und wenn Sie nicht im build.xmlVerzeichnis sind, müssen Sie es ant -p -buildfile path/to/build.xmltrotzdem verwenden.
Andrew
1
Das target name="help"Ding funktioniert gut, aber nicht, wenn es in einer Eclipse Ant-Umgebung ausgeführt wird (es hängt nur, aber -diagnosticsoder andere sind damit einverstanden) :-( (keine VM-Gabel, Kepler mit Ant 1.8.4 (2014-05-22) und auch ausprobiert mit Ameise 1.9.4 (29.04.2014)) (nur wenn Sie sich fragen ... Ich habe eine eigenständige Ameisenumgebung erstellt, die ich in Eclipse testen möchte ... natürlich habe ich meine Ameisenansicht dort)
Andreas Dietrich
34

Um alle Ziele in der Build-Datei zu erhalten

Ameise -p-Verbose

Shweta
quelle
1
Wir müssen -p zusammen mit -v verwenden. Wenn wir alle Ziele benötigen (mit allen Zielen meine ich auch die Ziele ohne Beschreibung). Wenn nur die Hauptziele erforderlich sind (mit Hauptzielen meine ich diejenigen mit Beschreibung darin), reicht es aus, nur -p zu verwenden.
Wills
2
Ich konnte die Ziele, die ich brauche, nur mit -p nicht sehen, das funktioniert perfekt.
JacopKane
15

Die Option -poder -projecthelpmacht genau das, also können Sie:

ant -p build.xml

Sie können ein Ziel festlegen, um Folgendes aufzurufen:

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

Diese können Sie dann als Standard festlegen. Wenn Sie also nur ant eingeben, werden die verfügbaren Ziele aufgelistet.

(Kombination von @Grodriguez 'Antwort und @ sschuberths Kommentar - ich dachte, es wäre eine Antwort wert)

rjmunro
quelle
5
kleiner Vorschlag. Machen Sie das Ziel "Hilfe" zum Standard. Infolgedessen ruft "ant" das Ziel "help" auf, das alle verfügbaren Ziele druckt.
user1697575
0

Sie können die Liste der Ziele und Standardziele in build.xml mit dem folgenden Befehl überprüfen

ant -p built.xml

Jainesh Patel
quelle