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 :

Release d'un projet multi-module


Sujet :

Maven Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2010
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 121
    Par défaut Release d'un projet multi-module
    Bonjour messieurs,

    Je viens vers vous, car je ne sais plus ou me tourner j'ai déjà lu le livre Apache Maven

    Très très bon livre en passant avec les pro unix pro apple pro windows(pro netbeans euhm euhm bon je m'écarte du sujet).

    Dedans il y a une section sur le livrable dans les derniers chapitre étant étudiant je me suis dit(c'est bon j'en est pas besoin, et j'ai rendu le livre a mon ami ...). Aujourd’hui après le boulot je suis allez a la FNAC et ils en avait plus.

    Mais voila je suis en stage dans une entreprise et maintenant j'en est besoin voila mon interrogation j'ai un projet qui contient pas mal de module.

    Et pour que certains module du projet compile ils ont besoin des module d'avant.
    Je compile grâce a un projet parent qui a étais mit sur le SVN.

    mvn clean install du POM parent marche bien et tout mes modules Build success

    Mais voila quand on veut faire une release d'un projet il faut le faire manuellement on a pas dans le POM parent un système qui nous fait les release de tout les modules.
    Donc a chaque fois il faut prendre un module et faire un

    mvn release:clean release:prepare
    mvn release:perform -Dskip=true


    (Voila la fin de ma mission de stagiaire et de faire que le projet parent mettent toutes les dépendances dans les différents Tag du SVN )

    Malheureusement j'ai un autre problème l'architecture du dépot SVN
    En effet je n'est pas un projet parent qui contient les autres projets enfants je n'est que des modules pour schématiser un peu je n'est pas ça :

    -Projet Parent
    |-trunk
    |-module1
    |-module2
    |-branche
    |-tags
    |-2.4.0-SNAPSHOT
    |-2.4.1-SNAPSHOT

    J'ai un dossier qui contient tout les modules et le projet parent

    -dossier
    |-module1
    |-trunk
    |-branche
    |-tags
    |module 2
    |-trunk
    |-branche
    |-tags
    |projetParent
    |-pom.xml

    Ma question est donc est-ce qu'avec le deuxième schéma je peux faire ce qui m'est demandé (cad faire que mon POM parent build les releases de tout les modules et vienne a chaque fois mettrent les release dans le tags de chacun des modules?) Car a vrai dire je cherche mais je trouve pas trop j'ai l'impression qu'il faut avoir un SVN comme dans le schéma 1 pour que cela fonctionne.

    Voila j'espère que j'ai étais clair, et que je n'est pas fait trop de fautes.
    En vous remerciant de m'avoir lu.

  2. #2
    Membre confirmé
    Inscrit en
    Septembre 2010
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 121
    Par défaut
    Bon pour l'instant j'arrive bien a faire un release:prepare dans le projet enfant.
    La release est bien présente sur le SVN pas de problème par contre quand je fais un mvn release:perform -Dskip=true La j'ai une erreur chemainduprojet\target has no ancestry information je comprend pas pourquoi il veut pas faire un build du projet depuis le SVN ...

    Voila

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2010
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 121
    Par défaut
    Bon voila je suis arriver au point ou je ne comprend plus le plugins release de maven.

    J'arrive bien a faire une release d'un module seul avec l'architecture du projet actuel mais je n'arrive pas a faire une release grace au pom parent.

    Il y a quelque chose que je ne comprend pas :

    Quand je fais une release d'un module il modifie bien les indications de version dans le POM, il indique bien dans le POM du projet le tag appliqué à la version à produire et il va bien posé le tags sur mon SVN.

    mais quand je fais un mvn release:prepare avec projet Parent il fait la même chose( ce qui parrait logique ) mais par contre il modifie dans le pom parent ces lignes :

    <connection>scm:svn:https://cheminDudepot/TestMavenBuild/metaproject-ihm/trunk</connection>
    <developerConnection>scm:svn:https://cheminDudepot/TestMavenBuild/metaproject-ihm/trunk</developerConnection>


    et a la suite de ca il me change le chemin avec le nom de la release enfin avec /tags/nomdelarelease
    Donc voila.

    <connection>scm:svn:https://cheminDudepot/TestMavenBuild/metaproject-ihm/tags/metaproject-2.22.1/trunk/ </connection>

    <developerConnection>scm:svn:https://cheminDudepot/TestMavenBuild/metaproject-ihm/tags/metaproject-2.22.1/trunk</developerConnection>


    Qu'il modifie le POM je suis d'acort pour les version mais pourquoi touche t'ils au chemin avant de poser le tag sur le dépot ???


    le plugin est déclarer comme ca :


    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-release-plugin</artifactId>
    <version>2.1</version>
    <configuration>
    <tagBase>https://cheminDudepot/TestMavenBuild/metaproject-ihm/tags/</tagBase>
    </configuration>
    </plugin>

  4. #4
    Membre confirmé
    Inscrit en
    Septembre 2010
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 121
    Par défaut
    Bonjour à tous donc voila j'ai enfin trouvée une réponse a toutes mes questions pur ceux qui serait intéresser je prens un peu de temp pour expliquer comment faire une release d'un projet multi-modules car il n'y a vraiment pas beaucoup de documentation sur ce sujet tout d'abord si vous ne connaissez pas le plugins release de maven voila comment le déclarer dans votre fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <plugin>
    	<groupId>org.apache.maven.plugins</groupId>
    	<artifactId>maven-release-plugin</artifactId>
    	<version>2.1</version>
    	<configuration>
    <tagBase>https://cheminDuRepositoy/tags/</tagBase> 
    	</configuration>
    </plugin>
    Donc on défini le plugin release de maven dans le POM parent, dans les pom enfant on inclut le pom parent avec la bonne version on met dans le fichier POM ou est l'emplacement du référentiel du dossier qui contient tout les modules :
    <scm>
    <connection>scm:svn:https://cheminDuRéférentiel/dossierparent/</connection>
    <developerConnection>scm:svn:https://cheminDuRéférentiel/dossierparent/</developerConnection>
    </scm>
    Alors là une explication s'impose le plugins release prend le dossier parent pour faire sa release cad le dossier parent dans le SVN

    Si vous avez un SVN avec une architecture comme suit :

    MavenTest => nom du dossier dans lequel ce trouve le projet.
    |
    |-Module1
    | |-trunk
    | |-branches
    | |-tags
    |-Module2
    | |-trunk
    | |-branches
    | |-tags

    La par défaut la release contiendra tout les modules et tout les dossiers contenant ces modules cad le trunk les branches et les tags.Par franchement cohérent Voir même Pas du tout cohérent.
    Par contre si vous avez une architecture comme suit :

    MavenTest => nom du dossier dans lequel ce trouve le projet.
    |
    |-----trunk
    | |-Module1
    | |-Module2
    |
    | -----branches
    |
    |------tags
    | |-nomDeLaRelease-2.2.12
    |-Module1
    |-Modules2

    La le plugins release va bien prendre le trunk du dossier parent allez dans le trunk prendre tous les modules(projets) et faire la release avec tout les modules

    la commande pour faire une release : mvn release:prepare release:perform.

    Donc voila pour les explications je ne sais pas si j'ai bien résumer ou pas .

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 01/04/2008, 14h42
  2. Projet multi-modules, génération de la javadoc
    Par hel22 dans le forum Maven
    Réponses: 2
    Dernier message: 14/11/2007, 11h39
  3. Réponses: 7
    Dernier message: 03/04/2007, 01h10
  4. [Continuum] projet multi-modules +authentification serveur
    Par rseM2 dans le forum Intégration Continue
    Réponses: 13
    Dernier message: 15/02/2007, 17h28
  5. BUILD ERROR sur création d'un projet multi-modules
    Par elitost dans le forum Maven
    Réponses: 1
    Dernier message: 28/08/2006, 15h23

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