2011-07-21 15 views
6

Mam obiekt docelowy ant, który pobiera zmienną liczbę argumentów, które mają zostać przekazane do zadania exec. Używanie starego mechanizmu jest banalne:Jak przekazać zmienną liczbę argumentów do ant exec

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

Jednak użycie "polecenia" jest przestarzałe na rzecz elementów zagnieżdżonych. tak:

<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> 

co uniemożliwia wyświetlanie zmiennych w listach argumentów.

Jak rozwiązać ten problem?

Odpowiedz

13

Jak o tym:

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

Mutter, mruczy, mruczy ... skąd, u diabła, który pochodzi? Przysięgam na boga Spojrzałem na ten dokument wiele razy i nigdy nie widziałem tego atrybutu d * $ i m. Dzięki. – Pat

+1

To właściwie pierwszy przykład na stronie ant strony. Bez obaw, zdarza się to nam wszystkim :) –

+0

Wszystko to bardzo dobrze, ale istnieją przypadki użycia, w których trzeba użyć atrybutu 'value' elementu' arg', ponieważ atrybut 'line' nie będzie działał. Nie zawsze są wymienne. Zobacz: http://stackoverflow.com/a/9562235/274677 –

Powiązane problemy