Question

Fort de ma petite expérience, je n’ai utilisé Ant que comme outil de construction. Y a-t-il d'autres projets qui sont meilleurs et pourquoi?

Était-ce utile?

La solution

Maven

C’est bien mieux que ant car, pour la plupart des tâches courantes, il n’est pas nécessaire d’écrire un fichier build.xml compliqué, maven a de très bonnes valeurs par défaut et c’est la convention qui régit la configuration.

Il possède également un grand référentiel central de bibliothèques et il est très facile de le configurer pour, par exemple, "utiliser les dernières versions communes les plus stables". Maven téléchargera alors la dernière version stable pour vous (plus aucune vérification des fichiers jar dans VCS) et si une nouvelle version stable en amont est publiée, il la téléchargera également. Bien sûr, il est tout aussi facile de le verrouiller sur une version spécifique si vous en avez besoin.

Il est également bien intégré à la fois avec Netbeans et Eclipse (plug-in m2eclipse) afin que l'EDI respecte les paramètres (y compris les dépendances) que vous déclarez dans le fichier pom.xml.

Il y a aussi des inconvénients à maven: certains plugins sont plutôt mal documentés, l'intégration avec les deux IDE n'est pas vraiment parfaite et, de différentes manières, certains messages d'erreur peuvent être difficiles à comprendre.

Autres conseils

Ant est toujours un acteur majeur. D'après mon expérience, c'est dominant. De plus, avec Ivy, il gère certaines des forces de Maven. IMO, Ant deviendra un cadre pour d’autres outils: XML est trop rigide (voir lien ci-dessous).

Maven 2 est également un acteur majeur. Je connais des gens qui l’apprécient beaucoup et qui hérissent des critiques qui étaient vraies pour Maven 1 (le chemin a été long).

Groovy propose des éléments intéressants dans l’espace de compilation, car ils reposent sur Ant. Gant est utilisé dans les Grails, mais peut être assimilé à Gradle. Ceux-ci peuvent également être utilisés pour Java.

Au risque de soutirer mon propre blog, voici un article sur Gant et Gradle. Voici un lien vers le débat d'actualité sur leur avenir.

dans l’entreprise, ant est toujours le joueur clé. les dépendances ne changent pas rapidement. contrairement aux projets open source qui continuent de migrer vers la version la plus récente des fichiers jar dépendants, la plupart des entreprises n'essaient PAS de changer leurs dépendances trop rapidement. Etant donné cela, les avantages de Maven ne sont PAS trop comparés à ceux de fourmi.

Encore une fois, si vous souhaitez utiliser certaines des fonctionnalités de Maven, les utilisateurs de fourmis ont ivy ( http: // ant. apache.org/ivy/ ) pour la fonctionnalité des dépendances.

SI vous souhaitez continuer à utiliser ant, récupérez "ANT IN ACTION", 2e édition, pour pouvoir utiliser ant de manière optimale.

Bonne chance,

Certaines personnes aiment Ivy , qui est un outil de gestion de la dépendance pour Ant, donc je suppose que venant d'un fond de fourmi va l'aimer.

D'autres, comme Buildr . C'est un truc de JRuby, donc si vous pouvez jongler entre Ruby et Java dans les mêmes projets, alors je suppose que ça va être intéressant.

Personnellement, je viens d'utiliser Maven . Il est facile de créer un fichier pom.xml par défaut et de disposer de toutes les commandes de construction. Et lorsque le projet se développe, vous disposez déjà de l’infrastructure nécessaire pour exécuter des plug-ins et ajouter des dépendances.

Vous disposez également de Gant . Gant is Groovy + Ant, vous pouvez écrire vos tâches simplement et vous pouvez également appeler n’importe quelle tâche. Si vous êtes un magasin Java et que vous souhaitez réutiliser vos compétences en ant, mais que vous n'aimez pas le langage XML, je recommande Gant, il est très facile à configurer et vous pouvez l'intégrer dans ant (et aussi appeler gant depuis ant).

J'aime beaucoup SCons , un outil de construction dont les fichiers de configuration ne sont que des scripts Python. Cela plaira à tous ceux qui connaissent Python ou des langages de script similaires. SCons est conçu pour fonctionner correctement avec Java ainsi que C / C ++ et d’autres langages, et j’en ai été très satisfait dans le passé.

Les fichiers SCons étant écrits en Python, vous pouvez écrire du code Python arbitraire si vous vous trouvez dans l'obligation de faire quelque chose de spécial. Toutefois, si vous ne connaissez pas bien Python, la courbe d’apprentissage sera plus longue que celle d’essayer d’étendre Ant ou quelque chose de similaire pour faire ce que vous voulez.

Maven2 semble être la solution.

Pour nos projets, nous revenons toutefois dans la mesure du possible.

Maven2 nécessite pas mal de connaissances pour l’obtenir exactement comme vous le souhaitez, et les versions de Maven2 semblent traiter les chemins de classes différemment.

Et il est difficile de vérifier toutes les licences incluses dans les dépendances des dépendances pouvant être utilisées.

Et le temps de démarrage peut être plus lent, car vous devez déterminer vous-même les dépendances, mais au moins, elles sont facilement lisibles. Aucune magie ne se passe ici:)

Si vous utilisez maven, pensez à un référentiel interne tel que Nexus. Ainsi, votre logiciel n’est pas mort si certaines bibliothèques décident de s’écarter du réseau *.

* Nous avons été brûlés avec maven1; les redirections du référentiel ibiblio maven1 et maven1 ne prennent pas en charge les redirections: (

Je vous exhorte à définir vos besoins lorsque vous envisagez de choisir le bon outil. Chaque projet est différent, l'outil que vous utilisez doit refléter l'espace du problème et non la mode.

Cela étant dit, je pense que l'utilisation générale de Ant est encore probablement le meilleur outil général pour la création d'applications Java. Il est souvent utilisé efficacement avec d’autres outils pour la gestion des dépendances, mais nous nous retrouvons ici dans une solution sans problème.

La très bonne nouvelle, c’est que si votre processus est bon, le changement d’outils de construction est assez simple - leçon - commencez avec un bon processus adapté au problème à résoudre.

Vous trouverez déjà quelques réponses dans Quels sont les bons utilitaires Java Make? .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top