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 :

Projets multimodules et gestion des versions


Sujet :

Maven Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 62
    Points : 55
    Points
    55
    Par défaut Projets multimodules et gestion des versions
    Ce n'est pas une résolution de problème mais plus un retour d'expériences que j'aimerais avoir de votre part sur les projets multi-modules.

    Lorsque l'on travaille avec des projets multi-modules, disons P le projet parent et A et B comme modules de P, les versions sont souvent partagées et donc identiques entre ces trois projets. Si l'on définit une version différente dans l'un des modules, maven renvoie un warning indiquant cette différence.

    Donc cela signifie-t-il que la bonne pratique dans ce cas est de toujours avoir les mêmes versions entre le parent et les modules ?

    Pourtant, si mon module A n'évolue jamais, je pourrais être tenté de figer la version pour éviter d'avoir des versions au contenu identique et à la numérotation différente.

    Cependant, lors d'un maven release, tous les projets passent en version SNAPSHOT supérieures, donc pour éviter cela il faudrait modifier cette version et indiquer une version "rétrograde" finale et cela ne me paraît pas convenable.

    Quel est votre avis ?

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Tu confonds plusieurs choses, que l'on mixe il est vrai assez souvent ensemble:

    l'héritage de pom => C'est ce qui te permet d'avoir un parent, et un enfant qui le référence via son tag <parent>. Il n'y a pas d'obligation que le numéro de version soit identique. Si tu regarde des projets opensource utilisant maven, comme ici tu verra que les numéros de versions ne se suivent pas entre le parent (myfaces 14) et l'enfant (tomahawk 1.1.15).

    L'interdépendance entre projets => Il n'y a pas ici non plus de règles particulières. Tu peux avoir B version 2.31 qui dépend de A version 1.5. Il faut dans la mesure du possible essayer de garder une certaines cohérence, histoire de ne pas perdre non plus ton utilisateur dans les méandres des différentes versions.

    Le multimodule ou multiprojets => Cela consiste à avoir un pom central duquel on peux faire toutes les opérations simultanément sur une série de sous-module. Il n'y a pas d'obligation que ce pom central soit parent des sous module. Par contre, il est une bonne pratiques que le pom multimodule et chaque module partagent la même version. Après tout, il seront de toutes façons taggés ensemble dans le svn puisqu'à un racine commune

    Donc pour résumé: oui tu peux avoir A et B dans des versions différente avec un pom parent dans une troisimème version. Tu ne peux par contre pas avoir cela dans une multimodule. Par contre tu peux avoir un mix aussi


    parent/trunk/pom.xml -> version 1.2-SNAPSHOT

    machin/trunk/pom.xml -> version 2.5-SNAPSHOT, multimodule, hérite de parent 1.1
    machin/trunk/A/pom.xml -> version 2.5-SNAPSHOT, hérite de parent 1.1
    machin/trunk/Z/pom.xml -> version 2.5-SNAPSHOT, pas de parent, dépend de A version 2.5-SNAPSHOT

    bidule/trunk/B/pom.xml -> version 4.6.3-SNAPSHOT, hérite de parent 1.1, dépend de A version 2.4

    parent aura son propre cycle de releases, machin, A et Z suivront les mêmes versions, B aura aussi son propre cycle de releases.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 62
    Points : 55
    Points
    55
    Par défaut
    OK, merci bien pour ces précisions !

Discussions similaires

  1. Gestion des versions d'un projet VB6
    Par marco62118 dans le forum Discussions diverses
    Réponses: 2
    Dernier message: 16/02/2011, 10h07
  2. [Utilisation] Gestion des versions archivées
    Par tatou42 dans le forum CVS
    Réponses: 2
    Dernier message: 14/12/2005, 15h10
  3. [applet] gestion des versions Java
    Par bigVinz dans le forum Applets
    Réponses: 1
    Dernier message: 09/12/2005, 15h06
  4. Gestion des versions d'objets dans les SGBD
    Par bennus dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 09/05/2005, 12h57
  5. Gestion des versions travail en équipe
    Par yanis97 dans le forum WinDev
    Réponses: 1
    Dernier message: 05/10/2004, 21h18

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