2010-01-27 12 views
3

Nous travaillons actuellement sur un projet avec actionscript et Java. Jusqu'à présent, nous utilisions Ant comme outil de construction principal, mais la quantité de duplication et le manque de flexibilité (nous construisons une grande quantité de petits sous-projets, et copions tous les fichiers de construction à chaque fois) est une douleur) nous poussent vers un changement d'outils. EDIT3: J'ai fini de réécrire toutes nos constructions dans Gant, et même si ce n'est pas parfait, il a considérablement réduit nos fichiers de construction et rendu le nouveau projet beaucoup plus simple, donc je recommanderais définitivement Gant aux autres. vouloir changer leur philosophie de construction et leur structure de projet, mais simplement chercher un outil plus pratique que la fourmi. Je pourrais jeter un oeil à Graddle et/ou Ivy un de ces jours.Choix d'un outil de script/construction

EDIT2: Après avoir essayé Buildr, nous l'avons exclu car il fait beaucoup plus de choses que ce dont nous avons réellement besoin. J'essaie maintenant Gant qui ressemble à ce dont nous avons besoin, mais la documentation est assez petite. Cela vaut-il la peine de déménager jusqu'à Gradle, ou le projet n'est-il pas encore assez mature?

EDIT: Je vais essayer de clarifier nos problèmes avec Ant. Nous avons plusieurs sous-projets avec des mises en page similaires que nous devons compiler et exécuter des tests. Une fois cela fait, certains d'entre eux doivent être empaquetés ensemble pour produire des exécutables (à savoir un client, un serveur et des démonstrations autonomes). Le travail de description de notre disposition standard dans Ant est assez long, et il est terriblement difficile d'introduire de petites variations sans réécrire la macro entière. (Par exemple, l'un des projets doit extraire ses actifs visuels d'un référentiel différent).

  • Gant qui nous permettra de réutiliser les tâches de fourmis qui sont déjà là à la fois pour Flash et Java
  • Gradle pour les mêmes raisons, même si elle semble un peu plus compliqué
  • Rake qui semble être très conseillé. L'inconvénient étant le support expérimental de l'intégration de script d'action et de notre manque de connaissance de Ruby
  • Buildr qui a l'air assez cool, mais là encore, pas knowldege de rubis
  • Scons semble avoir moins dynamique, mais Python est un assez cool langage de script

Maven a été considéré, mais a été éliminé en raison de la complexité inhérente et de la prédisposition d'erreur apparente. Nous sommes actuellement en train de pencher vers Gant. Est-ce que l'un d'entre vous a déjà utilisé plusieurs de ces outils? Comment se comparent-ils? Nos besoins sont assez basiques: compiler et empaqueter des projets, les déployer sur plusieurs cibles et des fonctionnalités de script (pour exécuter par exemple des tests de performance spécifiques au projet). Il convient de noter que nous utilisons Hudson pour gérer l'intégration continue.

Répondre

1

Je sais que les gens de notre société qui font Java pour vivre ne jurent que par Ivy, mais n'ayant aucune expérience avec elle, je n'ai pas assez de faits pour soutenir cette suggestion avec des arguments techniques. Ils ont mentionné le manque de duplication comme un avantage par rapport à Ant qu'ils utilisaient auparavant. Caveat emptor.

5

Je ne suis pas sûr que passer à gant résoudra vos problèmes. Gant écrit simplement des fichiers de construction dans groovy au lieu de xml. Je pense que votre problème réside davantage dans la façon dont vous utilisez fourmi. Difficile à dire sans plus de détails, mais des phrases comme "quantité stupide de duplication" et "copier des fichiers de construction" me font penser que vous pourriez utiliser Ant plus efficacement.

Si ce n'est pas déjà fait, regardez vos tâches ant et voyez si vous pouvez les refactoriser afin d'éliminer cette duplication. En outre, vérifiez l'option -find à ant si vous ne l'avez pas déjà vu. Vous ne devriez pas avoir besoin de copier les fichiers de construction. BTW, Ivy est pour la gestion des dépendances, pas pour la construction.

+0

Pour clarifier, tous nos fichiers de construction se trouvent dans le même répertoire, nous ne les copions pas réellement dans nos projets. Cependant, il reste que faire des tâches paramétrables dans ant est inutilement compliqué (en grande partie parce que xml n'est pas un langage de programmation très agréable) En gros, nous aimerions avoir la possibilité de construire nos sous-projets de façon indépendante, puis les regrouper sans avoir copier la même tâche dix fois dans notre fichier de construction. –