2009-08-25 9 views
7

Puis-je écrire une tâche ant qui prend des paramètres lorsqu'elle est exécutée à partir d'une autre tâche ant?Puis-je écrire une tâche ant qui prend des paramètres lorsqu'elle est exécutée à partir d'une autre tâche ant?

Ce que j'essaye de réaliser en général, réutilise des tâches existantes avec différents paramètres.

Ce que je ne sais pas est:

  • est là quelque chose d'un tel sous-tâche fourmi?
  • peut-il prendre des paramètres?
  • comment et où cette sous-tâche est spécifiée?

Concept de ce que je dois atteindre:

Sous tâche Ant, qui prend des paramètres param1 et param2:

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

tâche principale Ant, qui exécute la sous Tâche:

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

Répondre

14

Il y a deux façons d'y parvenir:

  1. Vous pouvez le faire avec antcall.

  2. Depuis Ant 1.6, vous pouvez utiliser macros.

+0

Les macros semblent être la bonne solution. Merci! –

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> 

Il suffit d'appeler task2, exécution de la tâche se déroulera avant qu'il

+0

Excuses, copier et coller l'erreur! J'ai édité et ceci devrait le résoudre –

2

Ce que vous voulez est macro-def.

Pour un très bon guide d'écriture des macros Ant, consultez this presentation.

+0

Très bonne présentation en effet. Merci d'avoir partagé. C'est ce dont j'avais besoin. – botchniaque