2009-08-25 6 views
7

Posso scrivere un task ant che prende i parametri quando viene eseguito da un altro task ant?Posso scrivere un task ant che prende i parametri quando viene eseguito da un altro task ant?

Quello che cerco di ottenere in generale, è riutilizzare le attività esistenti con diversi parametri.

Quello che non so è:

  • C'è qualcosa come un sub-task in formica?
  • può prendere i parametri?
  • come e dove viene specificata tale attività secondaria?

Concetto di che cosa ho bisogno di ottenere:

Sub task Ant, che prende i parametri param1 e param2:

<someAntCommand att="$param1"/> 
<someOtherAntCommand att="$param2"/> 

principale Ant compito, che esegue il sub attività:

<doSomethingToExecSubTask somePointerToTaskOrFile="..."> 
    <param name="param1"> hello </param> 
    <param name="param2"> world </param> 
</doSomethingToExecSubTask> 

<doSomethingToExecSubTask somePointerToTaskOrFile="..."> 
    <param name="param1"> hello </param> 
    <param name="param2"> universe </param> 
</doSomethingToExecSubTask> 

risposta

14

Ci sono due modi per raggiungere questo obiettivo:

  1. si può fare questo con antcall.

  2. Dal momento che ant 1.6, è possibile utilizzare macros.

+0

Le macro sembrano essere la soluzione giusta. Grazie! –

0
<property name="param1"/> 
<property name="param2"/> 
<target name="task1">   
    <property name="param1" value="hello"/> 
    <property name="param2" value="world"/>   
</target> 
<target name="task2"> 
</target> 

Basta chiamare TASK2, esecuzione dell'attività può funzionare prima di

+0

Scuse, copia e incolla errore! Ho modificato e questo dovrebbe risolverlo. –

2

Quello che vuoi è macro-def.

Per un'ottima guida alla scrittura di macro Ant, consultare this presentation.

+0

Davvero un'ottima presentazione. Grazie per la condivisione. Questo è quello di cui avevo bisogno. – botchniaque