2009-07-01 5 views
9

Quindi questo è lo scenario. HoGestione script ANT Valore restituito da exec

<target name="test"> 
    <property file="blah"></property> 
    <exec dir="" executable="trast.exe" resolveexecutable="true" spawn="true"> 
    </exec> 
</target>  

<!-- So now I have the second target that uses Return value from first target --> 
<target name="test2"> 
    <property file="blah"></property> 
    <exec dir="" executable=RETURN VALUE resolveexecutable="true" spawn="true"> 
    </exec> 
</target>  

Fondamentalmente ho bisogno di un modo per utilizzare il risultato dal primo obiettivo nel prossimo obiettivo. Ho cercato online e una soluzione sembra essere quella di analizzare l'output. Ma c'è un modo per ottenerlo senza analizzare?

Grazie

risposta

13

L'attività exec ha un outputproperty. Puoi fare qualcosa di simile:

<target name="test"> 
    <exec dir="" executable="trast.exe" resolveexecutable="true" spawn="true" outputproperty="blah"> 
    </exec> 
</target>  

<!-- So now I have the second target that uses Return value from first target --> 
<target name="test2"> 
    <exec dir="" executable="${blah}" resolveexecutable="true" spawn="true"> 
    </exec> 
</target> 

E 'stato un po' che ho usato Ant e io non ce l'ho installato su questa macchina, ma mi sembra di ricordare di fare qualcosa come sopra.

O forse utilizzare resultproperty?

trovato qui: http://ant.apache.org/manual/Tasks/exec.html

0

La prima eseguibili restituire il nome del file eseguibile che poi devi correre in test2, giusto?

Quindi il primo file eseguibile potrebbe scrivere quel nome in un file di script (ad esempio file batch su Windows, file shell su Unix). Lo script avrebbe un nome fisso e il tuo script Ant lo eseguirà.

+0

Beh, è ​​fissato. Non riesco a trovare il modo di accedere al valore di ritorno dal test di destinazione nel test di destinazione2. – grobartn

+1

Oh, capisco, vuoi dire test restituisci il nome dell'exe che vuoi eseguire? –

+0

esattamente ........ – grobartn