IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Maven Java Discussion :

Ant + Maven 2 + Ivy : Est-ce bien raisonnable ?


Sujet :

Maven Java

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 91
    Points : 80
    Points
    80
    Par défaut Ant + Maven 2 + Ivy : Est-ce bien raisonnable ?
    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.

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    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

  3. #3
    Membre averti
    Avatar de Chatanga
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 211
    Points : 346
    Points
    346
    Par défaut
    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.

  4. #4
    Membre régulier
    Inscrit en
    Juillet 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 91
    Points : 80
    Points
    80
    Par défaut
    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 .

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    tu pose la question à tes collègue et en 5 minutes t'as la réponse

  6. #6
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    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.

  7. #7
    Membre régulier
    Inscrit en
    Juillet 2008
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 91
    Points : 80
    Points
    80
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    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.

  8. #8
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    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 ^^

  9. #9
    En attente de confirmation mail Avatar de Akira
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2002
    Messages : 85
    Points : 93
    Points
    93
    Par défaut
    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

  10. #10
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 736
    Points
    3 736
    Par défaut
    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

  11. #11
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Citation Envoyé par Akira Voir le message
    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

  12. #12
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    Je ne dis pas qu'il y a des choses qu'on pourrait faire avec Ant qu'on ne pourrait pas faire avec Maven (une telle pensée est si horrible ! ), je dis que j'utilise les deux dans les domaines où ils me paraissent le plus adaptés (donc cycle de dévelloppement pour maven, déploiement pour ant).

    Ce n'est même pas une question de vieux projet que je n'aurais pas le temps de faire évoluer.

    J'en suis arrivé à cette conclusion parce que :
    • la complexité du pom.xml et associés explose lorsqu'on y fait entrer une problématique de déploiement,
    • les termes de déploiement sont très spécifiques au... déploiement, voire à un utilisateur, quelque fois, même au poste d'un utilisateur particulier, et même les utilisateurs ont leurs propres phases et leur propre logique, et je préfère séparer le dévellopement du déploiement.
    • vu la floraison de cas particuliers pour le déploiement, la doc d'usage des outils devient un point clef. Hors la doc de ant est un million de fois mieux que la doc de maven, et 10 millions mieux que les plugins de maven. Mon efficacté est donc de 2 à 3 fois supérieure avec ant, vu mes propres limites intellectuelles.

  13. #13
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 736
    Points
    3 736
    Par défaut
    et, juste par curiosité : personne n'a testé gradle ? http://www.gradle.org/userguide.html

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 34
    Points : 41
    Points
    41
    Par défaut
    Je ne dis pas qu'il y a des choses qu'on pourrait faire avec Ant qu'on ne pourrait pas faire avec Maven (une telle pensée est si horrible ! ), je dis que j'utilise les deux dans les domaines où ils me paraissent le plus adaptés (donc cycle de dévelloppement pour maven, déploiement pour ant).
    C'est assez étrange tout de même cette " séparation". Les différents plugins disponible sous maven permettent de réaliser un très large panel de build et deploy différent au cas par cas ( configuration / profils ) . Réellement dans un cas bien précis un script ant serait plus que nécessaire pour effectuer un / des process spécifiques et non réalisable à partir de maven , rien n'empêche le développeur d'utiliser ce script ant et de l'insérer dans le lifecycle de maven ( cfr doc ) .

    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.
    Idem que mon commentaire précédent.

    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.
    Comme dit précédemment par un autre membre, Ivy n'a pas les mêmes scope que Maven.


    vu la floraison de cas particuliers pour le déploiement, la doc d'usage des outils devient un point clef. Hors la doc de ant est un million de fois mieux que la doc de maven, et 10 millions mieux que les plugins de maven. Mon efficacté est donc de 2 à 3 fois supérieure avec ant, vu mes propres limites intellectuelles.
    Il est vrai que concernant la documentation des plugins sous Maven , c'est la misère pour beaucoup. Il faut vraiment fouiller dans les entrailles du web pour trouver un temps soit peu de documentation avancée ( plus que sur les sites officielles ). Le soucis que je trouve dommage avec Maven & co , c'est justement ce manque de documentation standardisé et bien évidemment aucune DTD ou schema pour la validation .

  15. #15
    Membre averti Avatar de ZeRevo
    Inscrit en
    Avril 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2007
    Messages : 302
    Points : 343
    Points
    343
    Par défaut
    Autant utiliser maven1

    Chez nous on utilise trop maven2, on y passe des jours et des jours à configurer des plugins, à valider des dépendances, ... Maven2 est très bugué et pas assez flexible, j'ai beaucoup d'exemples à donner. Dernièrement je suis tombé sur un plugin qui permettait de faire un mapping de répertoire et pas de possibilité de mapper un fichier. Des fois on passe 4 heures sur maven2 alors qu'en 10 minutes avec un script ça ferait exactement ce qu'on voudrait.

    A côté de maven2, on utilise des langages de scripts (bash, perl, python) uniquement pour des tâches de dev, on laisse maven2 gérer tout le process de création de livrable.

  16. #16
    Membre expérimenté
    Avatar de Patriarch24
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    1 047
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 047
    Points : 1 640
    Points
    1 640
    Par défaut
    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.
    Il est possible qu'il existe des tâches ant pour des trucs bien précis, mais pas de plugins maven. Ceci est de moins en moins le cas, mais ça existe sûrement encore (je n'ai pas d'exemples sous la main).
    Donc, maven + ant why not, tant que ant reste limité à antrun pour des utilisations exotiques pour lesquelles aucun plugin n'existe (ou existe mais n'est pas pratique). Par contre, maven+Ivy, mis à part une compatibilité pour un ancien projet ant+ivy, je vois pas l'intérêt...

  17. #17
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    Citation Envoyé par ReaM Voir le message
    C'est assez étrange tout de même cette " séparation". Les différents plugins disponible sous maven permettent de réaliser un très large panel de build et deploy différent au cas par cas ( configuration / profils ) . Réellement dans un cas bien précis un script ant serait plus que nécessaire pour effectuer un / des process spécifiques et non réalisable à partir de maven , rien n'empêche le développeur d'utiliser ce script ant et de l'insérer dans le lifecycle de maven ( cfr doc ) .
    Pourquoi l'insérer dans lifecycle de Maven ?

    J'ai bien compris, je sais, que Maven permet de TOUT faire ; je suis heureux que l'on reconnaisse que la doc infernale des plugins incompréhensibles puisse être un problème, c'est déjà ça qui va dans mon sens.

    Surtout, je pense que les cycles de développement et les cycles de déploiement n'ont rien à voir, sauf peut-être dans les projets Java EE avec leur unique serveur ou presque. Non seulement cela justifie, mais encore il est mieux, plus pratique, d'avoir deux entités séparées.

  18. #18
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Citation Envoyé par Patriarch24 Voir le message
    Il est possible qu'il existe des tâches ant pour des trucs bien précis, mais pas de plugins maven. Ceci est de moins en moins le cas, mais ça existe sûrement encore (je n'ai pas d'exemples sous la main).
    Je peux t'en donner un en production: récuperer le contenu d'un webapp existante (ok, il existe le war overlay) dans le projet tout en
    - fusionnant le fichier struts de cette application avec le fichier struts de ton application
    - fusionnant d'autre fichiers xml
    - patchant tous les liens dans les jsp pour prendre en compte la mise en sous répertoire des jsp de la webapp plutot que sa mise en racine
    - ne pas récupérer pas le reste du WEB-INF

    La méthode propre aurait été de faire un plugin maven custom plutot qu'un script ant. Mais le script ant existait déjà

    Pour ce qui est des deploy au 'cas par cas', je préfère l'option de créer un projet par cible de deploy, projet minuscule qui dépend d'un master project indépendant du deploy et qui ne fait qu'ajouter les règle de configuration. Ainsi on garde une des règles de bon usage de maven: reproductibilité d'un build.

  19. #19
    Nouveau membre du Club
    Inscrit en
    Mars 2003
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 44
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par gifffftane Voir le message
    J'ai bien compris, je sais, que Maven permet de TOUT faire ; je suis heureux que l'on reconnaisse que la doc infernale des plugins incompréhensibles puisse être un problème, c'est déjà ça qui va dans mon sens.
    Bonjour bonjour,

    Dire que Maven permette de TOUT faire me paraît un peu grossier. C'est peut-être vrai maintenant mais il y a moins d'un an, ça ne l'était pas.

    Je n'ai, par exemple, pas trouvé comment faire de la copie de fichiers ou du remplacement de chaîne de caractère dans un fichier sans passer par un plugin Ant.
    Je n'ai pas non plus trouvé comment limiter les dépendances communes à différents projets Maven du projet sur lequel je travaille à une seule version identifiée et imposée (avec la version 2.0.8 de Maven, il me semble qu'on peut le faire maintenant).

    Pour moi, pour l'instant, Ant et Maven sont juste indiscociables je pense.

  20. #20
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Citation Envoyé par Mad666 Voir le message
    Bonjour bonjour,

    Dire que Maven permette de TOUT faire me paraît un peu grossier. C'est peut-être vrai maintenant mais il y a moins d'un an, ça ne l'était pas.
    On va dire que maven permet de faire beaucoup de chose, à condition de les faire à la manière maven

    Je n'ai, par exemple, pas trouvé comment faire de la copie de fichiers ou du remplacement de chaîne de caractère dans un fichier sans passer par un plugin Ant.
    build -> ressources -> filter=true
    Je n'ai pas non plus trouvé comment limiter les dépendances communes à différents projets Maven du projet sur lequel je travaille à une seule version identifiée et imposée (avec la version 2.0.8 de Maven, il me semble qu'on peut le faire maintenant).
    Ca fait longtemps qu'on peux définir les "managed dependencies" dans le projet parent. Il suffit que tous tes projets héritent du même parent imposant les versions.

Discussions similaires

  1. Dependencies et Maven ou Ivy/Ant
    Par ego dans le forum Plateformes réactives et architectures modulaires
    Réponses: 3
    Dernier message: 05/03/2010, 12h08
  2. Programmer encore en VB 6 c'est pas bien ? Pourquoi ?
    Par Nektanebos dans le forum Débats sur le développement - Le Best Of
    Réponses: 85
    Dernier message: 10/03/2009, 14h43
  3. PFE consultant junior: est ce bien raisonnable?
    Par alfreedd dans le forum Stages
    Réponses: 9
    Dernier message: 12/03/2007, 19h18
  4. Réponses: 9
    Dernier message: 04/10/2005, 13h50
  5. Est ce bien la meilleure façon de faire un histogramme ?
    Par rvzip64 dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 10/05/2005, 12h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo