2011-07-21 23 views
6

Tengo un objetivo ant que toma una cantidad variable de argumentos que se deben pasar a una tarea ejecutiva. Utilizando el viejo mecanismo es trivial:Cómo pasar un número variable de argumentos a ant exec

<exec command="cmd /c ${_full-path-to-exec}" osfamily="windows" failonerror="true"> 
</exec> 

Sin embargo, el uso del 'comando' está en desuso en favor de elementos anidados. de esta manera:

<exec executable="cmd" osfamily="windows" failonerror="true"> 
    <arg value="/c"/> 
    <arg file="${_full-path-to-exec}"/> 
    <arg value="${_param-one}"/> 
    <arg value="${_param-two}"/> 
    <arg value="${_param-three}"/> 
</exec> 

que hace de argumentos variable enumera imposible.

¿Cómo solucionar este problema?

Respuesta

13

¿Qué tal esto:

<arg line="whatever args you need"/> 
+1

murmullo, murmullo, murmullo ... ¿de dónde diablos salió eso? Juro por Dios que miré ese documento varias veces y nunca vi el atributo d * $ & m. Gracias. – Pat

+1

Es en realidad el primer ejemplo en la página de la publicación. No se preocupe, nos pasa a todos :) –

+0

Esto está muy bien, sin embargo, hay casos de uso donde uno tiene que usar el atributo 'value' del elemento' arg' porque el atributo 'line' no funcionará. No son siempre intercambiables. Ver: http://stackoverflow.com/a/9562235/274677 –

Cuestiones relacionadas