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 :

Comment migrer en douceur vers maven?


Sujet :

Maven Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné

    Homme Profil pro
    Développeur J2EE Senior
    Inscrit en
    Mai 2008
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur J2EE Senior
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2008
    Messages : 419
    Par défaut Comment migrer en douceur vers maven?
    Bonjour

    Je cherche à mettre peu à peu en place un environnement de production intégrant maven pour optimiser le travail en équipe, mais je me perds un peu dans toutes les technologies qui y sont rattachées. Est-ce que quelqu'un pourrait me clarifier ces concepts et m'expliquer quelles sont les étapes habituelles de mise en place de maven?


    J'ai lu la FAQ Maven2 et divers tutoriels, et je comprends bien le principe de l'utilisation en local pour un développeur seul. Par contre, dés que l'on parle de travail en équipe, j'entends aussi parler d'outils d'intégration continue comme continuum (chargé de réaliser les builds automatiques si j'ai bien compris), et de gestionnaires de repository comme archiva (là je ne comprends pas trop à quoi ça sert). Par ailleurs il semblerait qu'il y ait un nombre conséquent de plugins, et que maven 3 soit sorti, mais que la plupart des gens soient restés à maven 2. Tout ceci rend la chose peu claire pour le néophyte .
    Mes cours sur l'écosystème Java EE - N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  2. #2
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Citation Envoyé par Aldian Voir le message
    j'entends aussi parler d'outils d'intégration continue comme continuum
    Tu peux regarder une description ici :
    http://linsolas.developpez.com/articles/hudson/#LI-B

    En gros, c'est un service qui va périodiquement vérifier ton gestionnaire de sources (CVS, SVN, Git...) et, en cas de modifications du code, va recompiler les sources, relancer les tests, etc.
    Son rôle est de s'assurer qu'à tout moment, le code commité par les développeurs est conforme aux attentes (compilation + réussite des tests).
    L'un des autres intérêts de l'IC c'est d'exécuter cela dans un environnement sain et non sur une machine d'un développeur (fini le "mais si, ça compile chez moi" ).


    Citation Envoyé par Aldian Voir le message
    de gestionnaires de repository comme archiva (là je ne comprends pas trop à quoi ça sert)
    Maven, pour compiler un projet, va lire les dépendances définies dans ton pom.xml. Ces dépendances, identifiées par leurs groupId, artifactId et version, sont récupérées depuis un repository distant, puis copiées dans ton repository local. Ainsi, la prochaine fois qu'une dépendance est nécessaire, Maven la récupèrera depuis ton repository local, ce qui est plus rapide.
    Le repository distant est en général celui "officiel" de Maven, càd http://repo2.maven.org/maven2/
    Mais ce repository ne contient pas tout. De plus, accéder à Internet n'est pas toujours le plus rapide, le plus fiable, pour télécharger des centaines de dépendances (Maven est reconnu pour télécharger la Terre Entière ).
    Donc en général, ce que l'on fait, c'est de mettre en place un repository d'entreprise (Nexus étant le plus connu, mais il y a aussi Archiva et Artifactory) qui sera le référentiel pour les développeurs. En gros, Maven ira y chercher les dépendances qu'il ne trouve pas en local...

    A noter que c'est la même chose pour les plugins Maven.


    Citation Envoyé par Aldian Voir le message
    . Par ailleurs il semblerait qu'il y ait un nombre conséquent de plugins, et que maven 3 soit sorti, mais que la plupart des gens soient restés à maven 2. Tout ceci rend la chose peu claire pour le néophyte .
    Maven 3 est sorti récemment, et je te conseille de t'y mettre. Maven 3 offre de bien meilleures performances, tout en ayant une compatibilité assurée à quasi 100% avec Maven 2 (et donc les plugins).
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  3. #3
    Expert éminent
    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 : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    pour infos, je suis passé de maven 2 à maven3 ici sans m'en rendre compte. J'ai mis à jour mon ide et du jour au lendemain il a préféré utiliser maven 3. Je confirme, compatibilité assurée.

    Pour la migration en douceur

    1) Oublier Hudson et l'intégration continue. C'est la sucette bien agreable au bout du chemin, mais pas nécessairement un but à atteindre et certainement pas une nécessité

    2) Prendre un de tes projets qui ne dépend d'aucun autre projet. Faire l'inventaire de ses dépendances (ce qu'il y a dans le lib/ a priori), commencer à construire le pom en fonction

    2b) au fur et à mesure, tu remarquera des dépendances qui pour tout un tas de raisons ne sont pas dans le repo maven officiel. Si possible essaie de les trouver via ce site: http://www.mvnrepository.com . Si introuvables (soit parce que ce sont des librairies commerciales, soit des librairies non mavenisées), tu va devoir te créer un repository local. Le plus simple étant de télécharger, a mon avis, nexus sur une machine serveur, de le mettre en route et de commencer avec (cf la doc de nexus)

    3) une fois que le projet compile avec maven, tu passe au suivant

    4) t'arrête quand tout est intégré

    5) t'emmene tout le monde pour un repas pizzas, vin + topo sur maven

  4. #4
    Membre chevronné

    Homme Profil pro
    Développeur J2EE Senior
    Inscrit en
    Mai 2008
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur J2EE Senior
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2008
    Messages : 419
    Par défaut
    Je vous remercie vivement de vos réponses détaillées . Les choses sont désormais beaucoup plus claires, mais il y a deux points que je souhaiterai creuser:

    D'une part, comment migrer un projet eclipse vers un projet maven? On trouve un peu partout dans les FAQ la procédure pour créer un projet maven et l'adapter pour Eclipse, mais les documentations sont moins prolixes sur la manipulation inverse. Après il y a surement la possibilité de faire à la main en recréant un archétype et en copiant collant les sources, mais peut être qu'il est possible de procéder de façon plus souple?

    D'autre part, comment faut-il configurer le serveur (Linux) ? Y-a-t-il un tutoriel qui s'y rapporte? Bon je suppose qu'il faut y installer Nexus et maven (subversion est déjà là), et que l'ensemble doit plus ou moins être clés en main? Par contre je n'ai pas vu de paquets relatifs à maven3 dans les dépôts, mais comme c'est un logiciel java, ça ne devrait pas poser de problèmes (c'est compatible openjdk?)
    Mes cours sur l'écosystème Java EE - N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Expert éminent
    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 : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    si votre projet existe déjà, ne passez pas par l'archetype. Créez un fichier pom.xml de toutes pièces, à partir des pom.xml d'exemple. Déifnissez les source/test/destinations aux même valeurs que vous utilisez dans eclipse. Le plus gros du travail consistera à supprimer les .jar pour les remplacer par des entrées <dependency> de maven. Une fois ça fait, dans eclipse, supprimer le projet et le réimporter depuis le svn comme "projet maven". Les plugins maven pour eclipse font, accessoirement, un très bon boulot aujourd'hui

    Pour nexus, il est clé en main, et ne nécessite pas maven3 sur le serveur. Par contre, coté sécurité, avis personnel, c'est la galère à comprendre leur modèle de sécurité. Mais si le serveur n'est pas accessible de l'extérieur, vous n'avez peut etre pas besoin de sécurité

  6. #6
    Membre chevronné

    Homme Profil pro
    Développeur J2EE Senior
    Inscrit en
    Mai 2008
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur J2EE Senior
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2008
    Messages : 419
    Par défaut
    Merci beaucoup pour ces infos qui éclaircissent beaucoup de choses. Je vais creuser tout ça
    Mes cours sur l'écosystème Java EE - N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comment migrer d'access vers hyperfile ?
    Par c moi dans le forum HyperFileSQL
    Réponses: 6
    Dernier message: 29/04/2007, 13h26
  2. Comment migrer de 4D 6.5 vers Mysql ?
    Par nisham dans le forum 4D
    Réponses: 8
    Dernier message: 05/04/2006, 14h43
  3. [ADO.Net] Comment migrer du ODP.NET 9i vers OPD.NET 10g ?
    Par bartoumi dans le forum Accès aux données
    Réponses: 3
    Dernier message: 17/02/2006, 12h17
  4. [C++ ] Comment migrer vers C# ou C++.Net ?
    Par NutsFou dans le forum Framework .NET
    Réponses: 2
    Dernier message: 14/12/2005, 15h46
  5. Comment migrer GLScene vers Delphi 9 Win32 ?
    Par korntex5 dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 20/01/2005, 10h03

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