Nous avons un tas de scripts Ant, un pour chacun de nos sous-projets. En fin de compte, nous voulons exécuter tous ces éléments à partir d'un script de build principal et effectuer un autre nettoyage pour l'ensemble du projet. Chaque script Ant est nommé ant.xml
et se trouve dans le sous-répertoire de son projet. Chacun utilise un Ant import
pour importer un ant-commons.xml
, puis remplace certaines de ses cibles spécifiques.Pourquoi mon fichier de construction Ant Master ne fonctionne-t-il pas correctement?
Par exemple, l'un des projets Substitue la cible compile
, pour définir la classpath
appropriée, et de fixer le source
et target
à 1,5 (les fourmis communes utilise 1.4)
Maintenant, en théorie, tout cela semble facile. Voici le script de compilation maître:
<project name="Retain" basedir="." default="main">
<target name="main">
<ant dir="SharedJava" antfile="ant.xml" target="clean"/>
<ant dir="SharedJava" antfile="ant.xml" target="copy_current"/>
<ant dir="GWEasySoap" antfile="ant.xml" target="clean"/>
<ant dir="GWEasySoap" antfile="ant.xml" target="copy_current"/>
<ant dir="RetainLib" antfile="ant.xml" target="clean"/>
<ant dir="RetainLib" antfile="ant.xml" inheritAll="false" target="copy_current"/>
<ant dir="RetainIndex" antfile="ant.xml" target="clean"/>
<ant dir="RetainIndex" antfile="ant.xml" target="copy_current"/>
<ant dir="RetainPersist" antfile="ant.xml" target="clean"/>
<ant dir="RetainPersist" antfile="ant.xml" target="copy_current"/>
</target>
</project>
Qu'est-ce qui se passe réellement:
Les premiers sous-projets fonctionnent très bien. RetainLib
, qui, en fait, doit avoir une référence à la jarre SharedJava
, puis échoue, pleurnicher sur comment il ne peut pas le trouver. Lorsque j'ai supprimé RetainLib
, RetainIndex
a échoué, se plaindre de la façon dont vous ne devez pas utiliser les génériques dans un fichier cible 1.4.
Après avoir joué ces étaient autour je résolus tout simplement insistant sur le fait sur l'exécution de la cible de compilation à l'intérieur ant-commons
au lieu de l'redéfinie.
Pourquoi? Comment puis-je contourner cela? (Élégamment je veux dire - évidemment, je pourrais supprimer complètement l'utilisation de ant-communes et je parie que les choses fonctionneraient.)
Non. Pardon. Votre conseil est exactement faux, au moins à partir du résultat. 1. Avec dir supprimé et inheritFalse, la construction échoue immédiatement car le script ant.xml appelé est maintenant confus quant à son répertoire. 2.Avec dir restauré à sa place glorieuse et légitime :) et inheritFalse, la construction échoue, exactement comme décrit. –