2009-10-19 7 views
7

En hormiga si desea ejecutar más de un objetivo, podemos hacerlo de esta manera,¿Es posible excluir algunos objetivos de los objetivos Ant al ejecutar el script?

ant target1 target2 target3 

Otra forma podría ser, crear target4 como

<target name="target4" depends="target1,target2,target3" /> 

pero el problema es, uno de mis definición de objetivos es:

<target name="buildApp" depends="init,copy-all-requiredfiles-local,wait-to-merge,compile,createWAR,deployAll"/> 

y si quiero ejecutar BuildApp continuación, se ejecutará todos los objetivos asociados también, como obvio. ¿Es posible ejecutar el objetivo buildApp sin ejecutar desplegar todo objetivo?

+1

Sus objetivos y dependencias son interesantes. Creo que deployAll tiene una dependencia en buildApp y no al revés. –

Respuesta

14

Una posibilidad sería añadir una condición a su deployall objetivo como este.

<target name="depolyAll" unless="doNotDeploy"> 
... 
</target> 

Luego, cuando se desea ejecutar BuildApp sin deployall en la línea de comandos Eso sí,

ant -DdoNotDeploy=true buildAll 

por cierto. tenga en cuenta que a menos que solo compruebe si la propiedad está configurada. No es lo que es el valor

Pero este comportamiento debe documentarse y es un poco oscuro.

Consideraría explícitamente crear un segundo objetivo de compilación, p. Ej. buildAllWithoutDeploy que simplemente pierde el objetivo de implementación

+0

+1 fot * a menos * cosa. :) –

2

¿Por qué no crear otro objetivo para ello?

<target name="buildAppNoDeploy" depends="init,copy-all-requiredfiles-local,wait-to-merge,compile,createWAR"/> 
+0

ciertamente puedo crear otro objetivo, pero no esperaba esto. :) –

Cuestiones relacionadas