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 :

PB: pom projet n'hérite pas les profis du parent


Sujet :

Maven Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 12
    Points : 6
    Points
    6
    Par défaut PB: pom projet n'hérite pas les profis du parent
    Bonjour,

    j'ai le souci suivant, en effet j'ai défini un profil dans mon POM parent,et quand j'hérite de ce pom parent dans mon pom projet fils , ce profil n'est pas reconnu, en effet quand j'exécute mvn -PmyProfile deploy, il n'active pas le profike en question, mais quand je le copie dans le pom fils il l'active sans aucuin problème, les profiles seraient-il inheritables?

    merci pour votre aide

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2008
    Messages : 54
    Points : 36
    Points
    36
    Par défaut
    dans ton pom enfant tu fais bien appel a ton pom parent en utilisant ?
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            <parent>
                    <groupId>xxx</groupId>
                    <artifactId>xxx</artifactId>
                    <version>xxx</version>
            </parent>
    as tu définis tes modules dans le projet parent ?
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
           <modules>
                  <module></module>
           </modules>

    As tu fais mvn install de ton projet ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par ggalou08 Voir le message
    dans ton pom enfant tu fais bien appel a ton pom parent en utilisant ?
    <parent>
    <groupId>xxx</groupId>
    <artifactId>xxx</artifactId>
    <version>xxx</version>
    </parent>

    as tu définis tes modules dans le projet parent ?
    <modules>
    <module></module>
    </modules>


    As tu fais mvn install de ton projet ?
    j'ai bien déclaré le parent dans mon projets fils, en revanche j'ai pas déclaré de module c'est quoi l'utilité?

  4. #4
    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 : 45
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Ne pas confondre héritage et aggrégation !

    L'héritage, c'est définir un POM parent et l'utiliser dans différents projets comme parent. Chaque projet hérite ainsi de toutes les propriétés du parent.
    L'aggrégation, c'est définir pour un pom un ensemble de modules (des sous projets) qui seront buildés ensemble dès lors que l'on build le projet racine.
    (je schématise, mais c'est le principe).

    Il n'est pas nécessaire d'avoir les 2, même si c'est souvent le cas lorsqu'on aggrége un projet (les modules ayant pour parent le pom.xml racine).

    Dans ton cas, tu peux lancer la commande suivante : mvn help:effective-pom sur un projet enfant. Il va te montrer le vrai pom.xml de ce projet, à savoir ce que contient le pom.xml enfant + le contenu du pom.xml parent + le contenu du pom.xml "par défaut" de Maven 2...
    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

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2008
    Messages : 54
    Points : 36
    Points
    36
    Par défaut
    honnetement je suis pas expert Maven donc je suis pas sur de ma reponse.

    Je pense qu'en declarant module et parent dans reciproquement parent et module, ca permet a meven de tisser des liens entre le parent et le module (et cela grave a la commande mvn install qu'il faut aussi faire). Si je me trompe, j'en suis dsl !

    Enfin dans un projet maven a plusieur module, c'est ce qu'il faut faire ! Je fais comme ca et mes profils passent de mon projet parents aux modules sans soucis.

    Essayes et tu verras si ca foncitonne


    Edit : J'ai encore bcp a apprendre aussi !

  6. #6
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    En fait, mon problème c'est le fait= d'avoir 3 niveaux d'éhritage càd que:

    monPojet/pom.xml hérite de 2emeNiveau/pom.xml hérite de 1erNiveau/pom.xml

    et le profile est défini dans le premier niveau, or quand j'exécute :
    mvn help:effective-pom depuis mon dossier projet, je vois bien tout ce qui est défini dans mon premier niveau sauf le profil

  7. #7
    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 : 45
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Peut'on voir le contenu des 3 fichiers pom.xml ainsi ce que donne le mvn help:effective-pom sur le projet enfant ?
    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

  8. #8
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    en faite j'ai compris ce qui se passe , en efeft mon pom golabl de 1er niveau contient un profil contenant les tags <distributionManagement> afin que quand je deploie avec ce profile ce sont les repos contenus dans ce profils qui doivent etre pris en compte pour le déploiment et non ceux du niveau 2, or quand je supprime les tags <distribution management> de mon pom niveau 2, et je tape das mon prosjte mvn -PmyProfile deploy il prend bien en compte le profile défini dans le pom de 1er niveau, et quand je remet ce tag dans celui du 2eme niveau il regarde meme pas ce qu'il y a dans le profile et deploie directemnt dans ceux renseigné dans le 2eme niveau, je coprends pas pourquoi il fait ça

  9. #9
    Membre confirmé

    Inscrit en
    Septembre 2006
    Messages
    466
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 466
    Points : 515
    Points
    515
    Par défaut
    Bonjour,

    D'après ce que j'avais compris les profiles ne sont pas hérités. C'est à dire que si tu as un pom1.xml qui continent un profile et que ton pom2.xml hérite (via la balise parent) du pom1.xml alors maven 2 ne voit pas le profile s'il est exécuté à partir du pom2.xml.

    N.B. : Dans le cas que je mentionne, le pom1.xml n'agrège pas (via la balise modules) le module qui contient le pom2.xml

    Rémy

  10. #10
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Je reviens à la charge car en fait mon problème c'est que j'ai un pom1 qui hérite d'un super pom applé pom2 et je configure dans pom2 un profile contenant les tags <distributionManagement> qui renseignent le repo de déploiment commun au cas ou on active le profile avec la commande mvn -P myprofile deploy et pom1 contient aussi les mêmes tags qui renseignent les repos de déploiment par défaut, le but est que quand un developpeur tape "mvn deploy" son projets soit dépolyé dans les repos rensegniés dans les tags <distributionManagement> dans pom1, et si jamais il veut déployé dans le repo commun il ajoute à sa commande le nom du profile mvn -P myprofile deploy

    pom1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    ....
     
    <distributionManagement>
    		<repository>
    			<id>internal-releases</id>
    			<url>
    				dav:http://server/archiva/repository/internal-releases
    			</url>
    		</repository>
    		<snapshotRepository>
    			<id>internal-snapshots</id>
    			<url>
    				dav:http:server/archiva/repository/internal-snapshots
    			</url>
    		</snapshotRepository>
    </distributionManagement>
     
    ....
    le super pom pom2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    ....
    <profiles>	
     
      <profile>
    	  <id>myProfile</id>
     
        <distributionManagement>
        <repository>
          <id>external-releases</id>
          <url>http://server/archiva/repository/external-releases</url>
        </repository>
     
        <snapshotRepository>
          <id>external-snapshots</id>
          <url>http://server/archiva/repository/external-snapshots</url>
        </snapshotRepository>
    </distributionManagement>
    </profile>
     
    </profiles>
    ....
    donc avec cette configuration la commande mvn -P myProfile deploy
    n'active pas le profile et par cons"quent maven deploie dans le repo "internal-releases", et afin que ça soit le cas ou bien je dois renseigner le profile dasn pom1 ou bien suppmer le <distrubtionmanagement> de pom1.

  11. #11
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 197
    Points : 248
    Points
    248
    Par défaut
    Avec quelle version de maven est ce que cela se produit ?
    Ca sent le bug je pense qu'il faudrait ouvrir une issue avec les 3 poms "simplifiés" comme exemple.
    Est ce que mvn help:active-profiles liste le profile myProfile qu'avec l'option -P ... ?

  12. #12
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    ça se produit avec la version 2.0.7 de maven

  13. #13
    Membre confirmé

    Inscrit en
    Septembre 2006
    Messages
    466
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 466
    Points : 515
    Points
    515
    Par défaut
    Avant d'ouvrir un bug, essaye tout de même avec maven 2.0.9.

    Rémy

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/06/2015, 17h39
  2. Réponses: 3
    Dernier message: 30/06/2009, 14h07
  3. eclipse ne reconnait pas les projets dasn le Workspace
    Par amissa dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 12/05/2008, 10h25
  4. Réponses: 2
    Dernier message: 01/10/2007, 11h49
  5. [WSAD] pas les projets RAD ???
    Par jaoued dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 17/01/2005, 09h46

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