¿Cómo puedo obtener una lista de objetivos de compilación en Ant?

191

Mi código base tiene un build.propertiesarchivo largo escrito por otra persona. Quiero ver los objetivos construidos disponibles sin tener que buscar en el archivo manualmente. ¿Ant tiene un comando para esto, algo así ant show-targets, que haga que enumere todos los objetivos en el archivo de compilación?

Shwetanka
fuente

Respuestas:

263

La opción -po -projecthelphace exactamente esto, por lo que puede probar:

ant -p build.xml

De la documentación de la línea de comando de ant :

La -projecthelpopción imprime una lista de los objetivos del archivo de compilación. Los objetivos que incluyen un descriptionatributo se enumeran como " Objetivos principales", aquellos sin un descriptionse enumeran como "Otros objetivos", luego se enumera el objetivo "Predeterminado" ("Otros objetivos" solo se muestran si no hay objetivos principales, o si Ant se invoca en -verboseo -debugmodo).

Grodriguez
fuente
35
Para que esto sea el valor predeterminado cuando solo se invoca ant, cree un objetivo similar <target name="help"> <java classname="org.apache.tools.ant.Main"> <arg value="-projecthelp" /> <arg value="-buildfile" /> <arg value="${ant.file}" /> </java> </target>y haga que "ayudar" sea el objetivo predeterminado en su proyecto.
sschuberth
18
Creo que vale la pena señalar que ant -psolo mostrará objetivos que tienen descripciones. Para mostrar todos los objetivos asociados con un build.xmlarchivo, debe ejecutar ant -p -vAdemás, ant -p build.xmles redundante. ant -phará lo mismo, y si no está en el build.xmldirectorio, deberá usarlo de ant -p -buildfile path/to/build.xmltodos modos.
Andrew
1
la target name="help"cosa funciona bien, pero no cuando se ejecuta dentro del entorno Eclipse Ant (simplemente se cuelga, pero -diagnosticsotros están bien con él) :-( (sin vm fork, Kepler con ant 1.8.4 (2014-05-22) y también lo intentó with ant 1.9.4 (2014-04-29)) (solo si te preguntas ... Estaba creando un entorno de hormigas independiente que me gustaría probar dentro de Eclipse ... por supuesto, tengo mi Ant View allí)
Andreas Dietrich
34

Para obtener todos los objetivos en el archivo de compilación

ant -p -verbose

Shweta
fuente
1
necesitamos usar -p combinado con -v Si requerimos todos los objetivos (por todos los objetivos me refiero a los objetivos sin descripción en ellos también). si solo se requieren los objetivos principales (por objetivos principales me refiero a los que tienen una descripción en ellos) usando -p solo hace el truco.
Testamentos
2
No pude ver los objetivos que necesito solo con -p, esto funciona perfecto.
JacopKane
15

La opción -po -projecthelphace exactamente esto, por lo que puede hacer:

ant -p build.xml

Puede hacer un objetivo para invocar esto como:

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

que luego puede establecer como predeterminado, por lo que simplemente escribiendo ant aparecerá una lista de los objetivos disponibles.

(Combinando la respuesta de @Grodriguez y el comentario de @sschuberth, pensé que valía la pena una respuesta en sí misma)

rjmunro
fuente
55
pequeña sugerencia hacer objetivo de "ayuda" por defecto. Como resultado, ejecutar "ant" invocará el objetivo de "ayuda" que imprimirá todos los objetivos disponibles.
user1697575
0

Puede consultar la lista de destino y destino predeterminado en build.xml con el siguiente comando

ant -p built.xml

Jainesh Patel
fuente