script - ¿Cómo puedo ejecutar todos los objetivos en un archivo de compilación Ant?
compilar con ant eclipse (3)
Me gustaría ejecutar todos los objetivos en lugar de especificar cada uno.
Por ejemplo:
<?xml version="1.0"?>
<project name="Kte" default="all" basedir="/home/Kte">
<target name="target1">
</target>
<target name="target2">
</target>
</project>
Actualmente tengo uso:
$ ant target1
$ ant target2
Me gustaría usar:
$ ant
y que se construyan ambos objetivos (esto es solo un ejemplo. Realidad Tengo un archivo de compilación de Ant con archivos sub-ant que siempre ha cambiado, por lo que sería muy útil tener una característica "todos").
Debido a que Ant es declarativa, no hace este tipo de cosas muy bien. Sin embargo, podría considerar una tarea de script
.
Los archivos de compilación de Ant tienen un destino implícito sin nombre que "retiene" todas las tareas que no forman parte de los objetivos con nombre. Entonces, esto, colocado en el nivel superior, haría lo que usted describe.
<script language="javascript"><![CDATA[
importClass( java.util.Vector );
vec = new Vector( project.getTargets().keySet() );
vec.setSize( vec.size( ) - 1 );
project.executeTargets( vec );
]]>
</script>
(El objetivo implícito aparece al final de la lista, de ahí el ajuste de tamaño para evitar la recursión).
Si coloca ese script en un destino ''corredor'', que ejecutaría todos los demás objetivos en el archivo de compilación, deberá eliminar el ''corredor'' del Vector (y el objetivo implícito sin nombre) para evitar la recursión.
Podrías crear una tarea ant, todo, que depende de todos los objetivos específicos que tengas ...
<target name="all" depends="target1, target2, ... ">
</target>
ant all
También puede configurar una tarea predeterminada que se ejecutará cuando solo escriba ant. El atributo por defecto está en el elemento del proyecto.
<project name="foo" default="all">
<target name="all" depends="target1, target2"/>
<target name="target1">
...
</target>
<target name="target2">
...
</target>
</project>
$ ant