Pour ceux d'entre vous qui utilisent des fourmis avec plusieurs projets, où mettez-vous les fichiers build.xml? En mettez-vous un dans chaque projet ou les mettez-vous dans un projet séparé contenant tous vos fichiers associés à vos fourmis? P>
La recommandation habituelle consiste à mettre un build.xml dans chaque projet. Mais cela a quelques inconvénients: p>
Il est difficile de réutiliser des objectifs communs dans plusieurs projets. P> li>
Parfois, vous voulez utiliser la fourmi pour exporter un projet à partir du contrôle de la source et le déployer. Évidemment, vous ne pouvez pas faire cela si le fichier de construction est dans le projet lui-même. P> li> ul>
Mais si vous les mettez tous dans un emplacement commun: P>
Les gens doivent être conscients de leur emplacement pour les utiliser; Ils ne peuvent pas simplement utiliser "fourmis" pour trouver le fichier du projet actuel. P> li>
Vous ne pouvez pas avoir différentes instructions de construction pour différentes branches du projet. P> LI> ul>
Que faites-vous les gars? P>
EDIT STRUT>: Merci pour les bonnes suggestions jusqu'à présent. Aussi bien maven, ce ne sont pas des projets Java, et j'ai l'impression que Maven est seulement destiné à Java. P>
5 Réponses :
Ma règle ecoutetique est de mettre le fichier build.xml dans le répertoire sous lequel tous les fichiers sont référencés. En d'autres termes, aucun chemin relatif ne devrait commencer par "../". Là où je vis, cela signifie généralement la mettre dans le répertoire "coffre", qui a SRC, lib, construction, docs, etc. en dessous. p>
Faire cela rend les chemins beaucoup plus propre dans le fichier et cela rend évident comment construire le projet. P>
Où j'ai plusieurs projets qui doivent construire, je vais créer une build.xml distincte pour chaque projet et une build.xml central dans le répertoire tout le projet est dans qui appelle ces autres fichiers build.xml. Cela vous donne beaucoup de flexibilité avec très peu de travail. P>
Je m'attendrais à un Ant Construire le fichier à localiser en haut d'un projet (c'est déjà Une douleur nécessaire à regarder un fichier de construction pour "découvrir" comment construire le projet, donc si je dois la localiser en premier, cela me fera totalement fou). Maintenant, en ce qui concerne tous les inconvénients que vous avez mentionnés, je suis tenté de dire: pourquoi n'utilisez-vous pas Maven ? p>
Placez les fichiers de fourmis avec le projet. C'est la norme de facto em> et recommandée par le créateur de la fourmi. Je vais essayer d'aborder certaines des questions que vous avez soulevées: p>
La réutilisation des objectifs communes devrait être effectuée à l'aide de techniques telles que décrites par Eric Hatcher dans son livre Java Development avec Fourmi . Fondamentalement, vous extrayez toutes les points communs dans quelques fichiers de niveau supérieur que tous les autres fichiers de fourmis "hériter" de. P> li>
Utilisation de la fourmi pour exporter un projet de Source Control vous semble étrange, mais si vous voulez le faire, utilisez un fichier anti-fourmis différent :-) Vous pouvez créer une cible comme Pour ant, je vous recommande de saisir ce livre - il a une tonne de techniques utiles. p>
La vraie recommandation que je ferais cependant, c'est de supprimer la fourmi et de convertir à Maven - comme la Fondation du logiciel Apache a fait (ils entretiennent à la fois des fourmis et Maven). P>
ant Export -DProject = FOO / BAR CODE>. P> LI>
ul>
La façon dont je l'ai fait est dans le passé (maintenant je viens d'utiliser maven): p>
On dirait que votre ensemble de projets pourrait être un bon candidat à la migration vers Maven, je me rends compte que ce n'est pas toujours possible, mais si vous avez le temps, vous voudrez peut-être examiner cela. P>
Si vous travaillez avec des projets indépendants, vous pouvez: p>
C'est la configuration exacte que nous utilisons. Je ne veux pas de copier et coller héritage partout pour des choses comme les objectifs de couverture du code. J'aurais dû payer à une révision spécifique, bien que cela n'ait pas été un gros problème.
où est le fichier build.xml?
Bien que Maven soit principalement un outil de construction Java, il contient des plugins pour d'autres langues. Voir Stackoverflow.com/questions/1168960/Maven-for -Tutres-...
Maven peut construire de nombreuses langues; Ce n'est pas seulement pour Java.