5 Réponses :
Vous devez supprimer le Cela s'assurera , que documentation dit pourquoi une propriété définie dans la configuration ne fonctionne pas avec AntCall: P> La cible appelée (s) est exécutée dans un nouveau projet; Sachez que cela signifie que les propriétés, les références, etc. définies par les cibles appelées ne persisteront pas le projet d'appel. P>
blockQuote> p> antcalls code>
et ajouter do.first code> et
do.second code> comme dépendances de
do.several code>:
configuration code> est uniquement appelé une seule fois: p>
! Pour vous débarrasser du
Voir la différence, entre Inclure forte> et J'ai légèrement adapté votre exemple, vous aurez besoin de plusieurs fichiers:
build.xml, commun.xml et macrodef_project_setup.xml p> macrodef strong> p> cible par défaut est maintenant init. em> p> mais tu pouvais encore Utilisez la configuration des fourmis. em> p> exécutez-le avec do.several. em> p>
Merci, Dean. C'est très impressionnant. Je regarderai en effet inclure, importer et macrodef plus en détail. Merci.
Une alternative aux réponses que vous avez déjà reçues est de créer un conteneur de tâches personnalisé qui veille à ne pas répéter une action. J'ai une telle tâche personnalisée dans Mon antlib personnel , mais il y a une charge entière de D'autres jonques là-bas que vous ne voulez probablement pas, alors peut-être que vous pourriez peut-être copier
Merci, dan. Je n'étais pas au courant qu'un taskontainer personnalisé était une possibilité. Il est clair que j'ai plus de lecture à faire.
Grand travail Dan! J'ai hâte d'essayer de sortir de quelques minutes avec Ivy, Hudson et surtout en utilisant les tâches Maven-Ant - rend la construction, le déploiement, le test beaucoup plus facile. Merci.
Les cibles peuvent avoir un élément "Sauf si" qui ignorera la cible si la propriété référencée par "Sauf si" est défini. p>
Je voudrais juste ajouter un autre moyen possible de le faire. De cette façon, vous ne l'exécutez qu'une seule fois et définissez instantanément le drapeau qu'il a déjà été exécuté une fois. De plus, il ne casse pas la partie "dépend" de votre code, car elle ne gère que des cibles si elles sont possibles / nécessaires, mais cela ne casse pas l'exécution de la cible dépendante cible. P> Il s'agit également de la moindre quantité de changement dans vos scripts. p> EDIT:
L'explication du "ne casse pas la partie dépend": p> si "fourmi do.first do.seconde 'est invoquée, il entraîne une configuration appelée deux fois même avec toutes les cibles à l'aide d'une configuration comme une dépendance. Ce serait un problème si la configuration fait des choses comme clonant un représentant ou une autre opération de consommation de temps. Cette approche fonctionne pour les deux cas - c'est-à-dire «ant do.several» ou «fourmi do.first do.seconde». P> p>