Developpez.com

Le Club des Développeurs et IT Pro

Outils Java : Y-a-t-il un intérêt à combiner Ant, Maven 2 et Ivy

(tous les 3 étant des projets Apache) ?

Le 2009-08-03 22:50:14, par fardon57, Membre régulier
Bonjour,

Ayant récemment obtenu un emploi, et étant développeur Java débutant, je dois faire de mon mieux pour intégrer un projet de taille assez conséquente.

Dans le projet, je suis assez surpris, car je vois des fichiers de configurations de toutes sortes : Maven, Ant, Ivy ...

Je ne suis pas du tout habitué à travailler sur des projets à taille d'entreprise, mais cela ne vous paraît-il pas bizarre cette pratique ? Je pensais qu'il s'agissait d'outils plutôt similaire.
  Discussion forum
19 commentaires
  • tchize_
    Expert éminent sénior
    ant et maven2 ont peu de chose à faire ensemble. Maven 2 fait le plus gros du boulot de ant en plus facilement ocnfigurable. Certe il est possible d'appeler du ant depuis maven 2 mais c'est un solution d'aide à la migration, temporaire donc. Je connais pas Ivy, mais il vaut mieux se poser la quesiton sur le projet, à ceux qui travaillent dessus "lequel je dois utiliser". Si ca tombe c'est juste l'historique de tatonnements dans le choix d'un système de compilation
  • Chatanga
    Membre averti
    Maven permet de mettre en place un processus de build complet tandis qu'Ivy n'est qu'un outil pour gérer les dépendances au sein d'un projet. Même si ce dernier peut être utilisé seul, il est généralement utilisé pour étendre Ant. Donc, en pratique, c'est soit Maven, soit Ant/Ivy (ou encore Ant tout seul). Ca n'exclut pas pour autant un mélange des deux qui, s'il n'est pas idéal, peut être nécessaire pour intégrer des éléments pré-existant à un projet. Il existe d'ailleurs différentes passerelles entre les deux approches : Ivy comprend et peut générer des fichiers pom à la sauce Maven par exemple.

    J'ajouterais pour finir que la mise en place d'un processus de build, et par extension d'intégration, n'est pas vraiment une tâche pour un débutant. Même si les outils ne sont pas forcément complexes à mettre en oeuvre, il y a pas mal de chausse-trappes à éviter et de choix à faire qui requiert une certaine expérience.
  • fardon57
    Membre régulier
    Ok, merci pour ces informations.

    Soyons clair, ils ne me demandent pas de construire les fichiers de build du projet. J'essai juste de comprendre un peu le projet, en lisant dans les centaines de classes et fichier de configuration que je trouve .
  • tchize_
    Expert éminent sénior
    tu pose la question à tes collègue et en 5 minutes t'as la réponse
  • gifffftane
    Membre émérite
    Et bien moi j'utilise ant+maven et j'en suis trés content. Je ne suis pas du tout d'accord avec tchize_, je ne comprends d'ailleurs pas ce qu'il dit ? chez moi ant et maven ne font du tout le me boulot, gros ou pas. Maven s'occupe de toutes la partie projet, développoment, tandis que ant fait toute la partie déploiement, configuration utilisateur final.

    J'ai aussi été tenté par yvi, mais je ne vois pas ce que cela apporterait en plus dans mon schema. Actuellement je suis plutot en train d'étudier ce que pourrait apporter groovy.
  • fardon57
    Membre régulier
    Envoyé par tchize_
    tu pose la question à tes collègue et en 5 minutes t'as la réponse
    Je viens d'arriver, je suis débutant, et j'ai pas envi de leur poser des questions toutes les 3 minutes ... Déjà que je les harcèle assez souvent ...

    Merci quand même, visiblement ant et maven ne sont pas si incompatible que cela.
  • tchize_
    Expert éminent sénior
    personellement, je préfère avoir un nouveau collègue qui viens me poser 50 questions sur comment est gérer un ou plusieurs projet sur lequel il va travailler, qu'avoir un collègue qui arrive, essaie de comprendre tout seul et fini par passer une semaine à résoudre un problème qui a déjà été résolu ^^
  • Akira
    En attente de confirmation mail
    Bonjour fardon57,

    DPour moi Ant et Maven sont bel et bien redondant.
    Je ne vois pas ce qu'il est impossible de faire avec Maven ou nécessiterait l'utilisation exclusive de Ant, hormis l'intégration d'un existant utilisant déjà Ant bien sur.

    gifffftane, peux tu nous en dire un peu plus sur ton environnement s'il te plait?
    Et le pourquoi du comment ce que tu fais avec Ant ne peut pas être fait en Maven?

    Sinon je suis d'accord avec les autres sur le fait qu'il vaut largement mieux que tu pauses ta question à tes nouveaux collègues.
    3 ou 4 questions toutes les 5 minutes au final cela ne fait pas un grosse différence que ça et puis tu es le newbe c'est normal
  • lunatix
    Rédacteur
    il est parfois utile d'utiliser ant a partir de maven pour faire des choses comme copier des fichiers. (maven est d'une rigidité abominable, et faire tenir un vieux projet dedans n'est pas toujours evident)

    inversement : on peut utiliser maven a partir de ant juste pour utiliser la gestion de dependances (pratique, un projet ant, mais avec l'utilisation de la gestion des jar de maven) : souvent utile avant une migration d'un projet de ant a maven

    par contre, ant + maven + ivy... euh, la je vois pas de bonne raison
  • tchize_
    Expert éminent sénior
    Envoyé par Akira

    Je ne vois pas ce qu'il est impossible de faire avec Maven ou nécessiterait l'utilisation exclusive de Ant, hormis l'intégration d'un existant utilisant déjà Ant bien sur.
    Exactement, d'ailleur j'ai un projet qui a subit du maven1 -> maven2, résultat: un maven2 avec des vrai bout de ant dedans
    Mais en pratique on pourrais avoir le même résultat soit en revoyant l'archi d'un projet importé, soit en remplacant le bout de ant par un plugin maven2 custom.

    En pratique, on a jamasi eu le temps de migrer, un jour peut être :p