Maven ou de Lierre pour Gérer les Dépendances de Fourmi?
Je me demandais à propos de la meilleure façon de gérer les projets de dépendances de fourmi. Quels sont les avantages et les inconvénients de l'Maven Ant de la tâche et de Lierre?
Vous devez vous connecter pour publier un commentaire.
Depuis que vous êtes désireux de faire est d'ajouter de gestion de la dépendance à un projet Ant, c'est précisément ce que le Lierre est conçu pour faire. Gestion de la dépendance est une grande partie de Maven, mais loin de tout cela. Maven est plus un projet orienté outil qui permet d'effectuer plusieurs autres choses en plus des dépendances. Il serait utile d'envisager si vous envisagez de migrer vers Maven et d'utiliser d'autres Maven fonctionnalités, mais c'est un peu beaucoup, si tout ce que vous souhaitez utiliser pour spin off Ant.
Votre type de dépendances et de vos attentes pour la façon dont ils se comportent, fera aussi la différence. Tirant tiers des dépendances est presque banal dans Maven, tandis que le Lierre excelle dans la reconstruction de votre propre composants dépendants. Dans les deux cas, les outils ne fournira pas décent de construire, la gestion des versions, et de référentiel politiques, ceux qui sont encore à vous et nécessaires pour obtenir la configuration de droite.
Ant + Ivy == Un terrain de camping, où les gens utilisent les installations nécessaires.
Maven == Une station, où vous compter sur quelqu'un d'autre à fournir des services.
Maven est plus facile pour une équipe qui manque de construire/d'intégration de l'expérience, mais quand l'équipe a besoin de s'écarter de Maven, ils vont se retrouver à atteindre pour groovy, gradle, et le manque de solide documentation va devenir frustrant.
Ant + Ivy va prendre plus de temps de démarrage d'un projet, mais si l'équipe a construire/intégration de l'expérience qu'ils peuvent adapter le système de construction autour de la façon dont ils développent et version du code.
Dans l'ingénierie... les entreprises de technologie, j'ai toujours pousser pour le camping de la solution par rapport à la station.
Il est extraordinaire, mais que les deux Ant et Maven choisir le format XML comme leur langue pour exprimer construire des recettes avec. La communauté Java est bloqué sur XML...
Ivy+Ant est beaucoup, beaucoup plus flexible. Ivy n'gestion de la dépendance, de la période, et il le fait très bien, mieux que Maven. Et avec Ant, vous pouvez très bien réaliser tout un système de construction que vous souhaitez.
Maven essaie de tout contrôler - le "cycle de vie" (compilation, d'essai, l'emballage, etc.), là où les fichiers doivent vivre, et ainsi de suite. Amusez-vous à personnalisation des plugins et la comme si vous n'aimez pas le "Maven façon".
Maven est la réponse à une question que personne n'a demandé. L'écriture d'un script Ant est pas dur, et du Lierre et vous donne une meilleure gestion des dépendances de Maven. Je suis confondu par certains des commentaires précédents en indiquant qu'ils ne pouvaient pas obtenir de Lierre de travail. Ivy est un peu plus simple que Maven pour se lever et courir.
Le Framework Spring utilise Ivy dans son processus de construction. Je pense que cela peut être vu comme un vote de confiance pour Ivy.
Je pense que ce blog couvre exactement ce que l'OP est à la recherche:
Pourquoi devriez-vous utiliser le Maven Ant des Tâches au lieu de Maven ou de Lierre
Si votre objectif à long terme est de migrer à l'aide de Maven pour gérer l'ensemble du processus de construction (que l'on pourrait l'intention de le faire pour de nouveaux projets "greenfield"), alors je vous le recommande chaudement à l'aide de Maven pom.xml fichiers pour gérer les dépendances au nom de l'Ant build.xml les fichiers. Le résultat final est que votre création de nouveaux projets et de vos anciens projets sont alors tous en utilisant le même mécanisme pour gérer les dépendances. Et il s'avère Maven vraiment fait un meilleur travail de gestion des dépendances pour Ant build.xml les fichiers que ne le Lierre.
Avant l'adoption de Maven comme notre produit phare, outil de construction, j'ai eu un développeur tentative d'utilisation de Lierre en combinaison existante Ant build.xml les fichiers. Ce fut la plus frustrante que très bientôt, nous amènent à rejeter le Lierre. Nous sommes allés de l'avant avec l'adoption de Maven. Nos nouveaux projets ont commencé à être construit avec le stock de Maven, etc..
Cependant, je suis retourné à la Fourmi anciens projets et a commencé à utiliser le Maven Ant tâche de définir le classpath définitions (et, occasionnellement, d'autres Fourmis de la propriété définitions extraites dans le pom.xml). Ceci s'est avéré être une expérience extraordinaire. L'existant Ant build.xml les fichiers ne doivent être légèrement modifié pour utiliser Maven ant l'intégration de définir le classpath qui étaient en usage dans la build.xml fichier. Toutes les dépendances requises par le projet est défini dans une note d'accompagnement pom.xml fichier qui est traitée par Maven via la tâche Ant incorporé dans le build.xml les fichiers.
Maven champs d'application peut être utilisée pour affiner classpath définitions telles que celle qui convient pour la compilation ou l'exécution de tests unitaires, ou pour l'emballage, et al, peut être établie. Aussi, à peu près n'importe quel élément de quelque chose de défini dans le pom.xml le fichier peut être référencée comme une Fourmi bien au sein de la build.xml fichier.
Vraiment avec la tâche Ant pour Maven il n'y a pas de raison valable pour Ivy de même exister.
Comparant avec Maven, ivy/ant est de comparer un smartphone à la télégraphie.
Si vous voulez bénéficier d'un réel effet durable dans la construction de l'infrastructure, il est préférable d'utiliser Maven parce qu'il anticipe et les résumés de tous les processus et les tâches de chaque projet de logiciel ou d'autres logiciels-comme le projet est confronté. J'ai pris part à de nombreux projets et la réalisation de vos projets deviennent plus complexes et plus diversifiées et de plus en plus hétérogène, vous louerai encore plus de la simplicité d'un projet Maven de configuration. En effet, il va devenir complexe, mais pas compliqué par rapport à ivy/ant-projets axés sur l'.
Le principal avantage de Maven est "convention over configuration" (http://en.wikipedia.org/wiki/Convention_over_configuration une très paradigme important. En bref, cela signifie que vous n'avez pas besoin de savoir/configurer des choses qui sont évidentes/banal/monnaie courante. Bien que Maven et tous ses plugins navire avec beaucoup de défaut-paramètres, vous avez toujours la possibilité de configurer vos projets pour vos besoins spéciaux. Avec Maven, d'une part, vous pouvez mettre en place un projet très facilement et rapidement; d'autre part, vous pouvez personnaliser un projet de culture pour répondre à vos besoins avec un minimum d'effort. Si vous avez bien compris les concepts clés derrière Maven, vous permettra de tirer profit de chaque projet et des projets qui ne sont pas typiques des projets de développement logiciel ainsi.
Dans le passé, j'ai écrit de nombreux scripts ant et à venir Maven, j'ai commencé à détester ant. Un désavantage est que vous avez toujours de la copie des scripts et répéter vous-même, de développer des tâches ant que de ne pas répéter des tâches qui ne sont pas de répéter des tâches qui ne le répétez pas... Et le principal inconvénient est que la culture des scripts ant tendance à devenir difficile à maintenir, surtout si une douzaine de fourmi geeks que vous voulez proxénète des uns et des autres scripts ant.
Beaucoup de ant-amateurs de souffrir de l'obtention d'un contrôle général des choses triviales comme la copie d'objets et d'impression buildmessages. Mais parce que Maven du concept clé est de cacher ces choses triviales la légende seront pour toujours garder vivante que Maven limite de personnalisation besoins. Mais ne vous inquiétez pas, c'est une légende! Et afin que l'on comprenne enfin ma première phrase: ne vous embêtez pas avec des choses insignifiantes qui sont déjà résolus.
Peut-être ivy/ant est une option pour les projets simples mais complexes croissant de projets vous avez besoin de simplicité et de conventions. Sinon, vous serez submergés, avec de plus en plus le maintien de problèmes. Surtout si vous avez de nombreux projets dépendants, des technologies et de l'hétérogénéité des composants du produit dans un projet global, vous n'avez pas de temps et d'argent pour développer et tester des scripts ant ou résoudre les problèmes de dépendance.
Un autre avis, devraient être mentionnées: Ant propose l'intégration de Maven. Cette intégration est souvent utilisée pour tester et jouer avec maven dans des projets qui ont grandi avec ant. Éviter ce stupide approche, car il génère plus de problèmes. Au lieu de rester avec ant et de sa douleur ou de migrer entièrement à maven.
Si vous êtes dans le doute au sujet des coûts de migration, je vous suggère d'utiliser le contraire manière de les intégrer que les différents mondes par le Maven-Ant-Plugin. Avec cette norme plugin, vous pouvez exécuter toutes les fourmis-script sans aucun effort. Sûr que c'est un héritage de la solution pendant un certain temps, mais il vous donne autant de temps que vous devez comprendre, mega-lignes de monstrueux déformée sans commentaire scripts ant de votre prédécesseur.
Et maintenant, vous allez l'éloge de la prochaine avantage de maven: Vous avez besoin de très peu de documentation de votre configuration, car la documentation est une partie de chaque maven-plugin que vous souhaitez utiliser.
Donc j'avoue que j'ai été un Maven-Antagoniste.
Je sais que l'un des avantages de Lierre est qu'il peut utiliser différents types de référentiels. Maven est généralement très rigide dans le format du référentiel, il va utiliser. C'est tout ce que je sais.
Je viens de passer 2 jours de lecture à travers le Lierre de la documentation et je dois dire, d'UTILISER MAVEN si vous avez n'importe quel type de choix. Ivy est complète et absolue de la poubelle pour autant que je peux dire. J'ai passé 2 jours à essayer de l'intégrer dans mon build et je suis couper mes pertes maintenant. Pourquoi?
Dès que j'ai introduit 'configurations' (à lire comme des profils maven), le Lierre a commencé à aller bezerk de télécharger toutes sortes de cochonneries je n'ai pas besoin pas. La documentation pour le Lierre est une véritable blague. Maven de la documentation, en comparaison, se lit comme un rêve. Si vous voulez un exemple de la façon impénétrable et mal écrit le Lierre de la documentation est, jetez un oeil à la page de référence pour configurations. Ce sont une partie essentielle de tout construire, mais de Lierre ils semblent être un mal conçu d'après la pensée.