Jak mogę uzyskać listę celów kompilacji w Ant?

193

Moja baza kodów ma długi build.propertiesplik napisany przez kogoś innego. Chcę zobaczyć dostępne wbudowane cele bez konieczności ręcznego przeszukiwania pliku. Czy mrówka ma do tego polecenie - coś w rodzaju ant show-targets- co spowoduje wyświetlenie listy wszystkich celów w pliku kompilacji?

Shwetanka
źródło

Odpowiedzi:

265

Opcja -plub -projecthelprobi dokładnie to, więc możesz po prostu spróbować:

ant -p build.xml

Z dokumentacji wiersza poleceń mrówki :

-projecthelpOpcja wypisuje listę celów pliku budować za. Cele, które zawierają descriptionatrybut są wymienione jako „Główne cele”, te bez a descriptionsą wymienione jako „Inne cele”, a następnie „Domyślny” cel jest wymieniony („Inne cele” są wyświetlane tylko wtedy, gdy nie ma głównych celów lub jeśli Ant jest wywoływany w trybie -verboselub -debug).

Grodriguez
źródło
35
Aby ustawić tę opcję jako domyślną podczas wywoływania ant, utwórz cel podobny <target name="help"> <java classname="org.apache.tools.ant.Main"> <arg value="-projecthelp" /> <arg value="-buildfile" /> <arg value="${ant.file}" /> </java> </target>i ustaw „pomoc” jako domyślny cel w swoim projekcie.
sschuberth
18
Myślę, że warto zauważyć, że ant -ppokażą tylko cele, które mają opisy. Aby wyświetlić każdy cel powiązany z build.xmlplikiem, musisz uruchomić ant -p -vrównież ant -p build.xmlJest nadmiarowy. ant -pzrobi to samo, a jeśli nie ma Cię w build.xmlkatalogu, i tak będziesz musiał użyć ant -p -buildfile path/to/build.xml.
Andrew
1
target name="help"coś działa dobrze, ale nie w przypadku uruchomienia w środowisku Eclipse Ant (to po prostu zawiesza się, ale -diagnosticsczy inni są ok z nim) :-( (no widelec VM, Kepler z ant 1.8.4 (2014-05-22), a także próbował z mrówką 1.9.4 (2014-04-29)) (tylko jeśli zadajesz sobie pytanie ... Tworzyłem niezależną env mrówkę, którą chciałbym przetestować w Eclipse ... oczywiście mam mój widok Ant tam)
Andreas Dietrich,
34

Aby uzyskać wszystkie cele w pliku kompilacji

ant -p -verbose

Shweta
źródło
1
musimy użyć -p w połączeniu z -v Jeśli potrzebujemy wszystkich celów (przez wszystkie cele rozumiem również te, które nie zawierają w nich opisu). jeśli wymagane są tylko główne cele (przez Główne cele mam na myśli te z opisem w nich) użycie -p sam załatwia sprawę.
Wills
2
Nie widziałem celów, których potrzebuję tylko z opcją -p, działa to idealnie.
JacopKane
15

Opcja -plub -projecthelprobi dokładnie to, dzięki czemu możesz:

ant -p build.xml

Możesz ustawić cel, aby wywoływać to w następujący sposób:

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

który możesz następnie ustawić jako domyślny, więc wpisanie mrówki wyświetli listę dostępnych celów.

(Łącząc odpowiedź @Grodriguez i komentarz @ sschuberth - myślałem, że warto było odpowiedzieć sama)

rjmunro
źródło
5
mała sugestia. ustaw cel „pomoc” jako domyślny. W rezultacie uruchomienie „ant” wywoła cel „help”, który wydrukuje wszystkie dostępne cele.
user1697575,
0

Możesz sprawdzić listę celu i domyślnego celu w pliku build.xml za pomocą następującego polecenia

ant -p built.xml

Jainesh Patel
źródło