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 :

[MAVEN2] creation possible d'un super POM?


Sujet :

Maven Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 76
    Par défaut [MAVEN2] creation possible d'un super POM?
    Bonjour,
    je suis stagiaire dans un labo info et pour debuter je me dois de maitriser assez bien maven.

    Je dois dans un premier temps maitriser parfaitement les dependances.
    J'ai crée donc deux projets distincts assez simple.
    L'un où c'est un projet de calculateur(methodes additionner,soustraire,multiplier...)
    L'autre ou en fait j'ai des methodes carré factorielle...
    Je dois donc utiliser les methodes du premier projet.

    J'ai crée les deux POM et ca a l'air de tourner(j'ai crée le JAR du premier projet par maven,ensuite je l'utilise dans le deuxieme projet grace aux dependances).

    Maintenant ce que je dois faire c'est crée une sorte de super POM qui gere tout ca.
    Je dois crée un super POM qui permetrrait de compiler le premier projet puis le deuxieme,cela va de soi.

    Deja est ce qu'il est possible de faire cela svp?
    Si oui comment.

    Merci de vos futures réponses messieurs.

    bassem

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    734
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 734
    Par défaut
    Bonjour,
    Il suffit que le pom parent possède les deux autres projets comme module.

    c'est expliqué ici : http://java.developpez.com/faq/maven...projet#projet1

  3. #3
    Membre chevronné

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

    Il faut que tu regardes le concept de multi-modules.
    Cf. les livres gratuits sur maven 2 :


    Rémy

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 76
    Par défaut
    D'accord voici l'arborescence du projet:

    mini_projet
    -----------projet_maven
    ----------------------src
    ----------------------bin
    ----------------------pom.xml
    ----------------------target
    -----------projet_maven2
    ----------------------src
    ----------------------bin
    ----------------------pom.xml
    ----------------------target

    ou dois-je mettre le troisieme POM(le POM parent),
    Je le met seul? un pom a besoin de source non?
    Merci messieurs pour la rapidité de vos réponses.
    Je vais aller voir la doc en attendant votre réponse

  5. #5
    Membre chevronné

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

    Je te conseille vivement de lire les documentations indiquées précédemment.

    Ensuite un projet multi-modules est structuré ainsi :
    projet parent
    -- pom.xml (pom parent de type pom et qui indique ses modules)
    -- module1
    ----- pom.xml (pom du module 1)
    -- module2
    ----- pom.xml (pom du module 2)

    Le pom parent n'a pas besoin d'avoir de repertoire source puisqu'il est de type pom.

    Rémy

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 76
    Par défaut
    merci remy pour tes reponses,le super pom si j'ai bien compris sera assez court si j'ai bien compris,je n'ai a a jouté que les modules.
    Je veux dire les balise source repository ne seront paspresent puisqu'il n'a pas de source c'est cela?

    bassem

  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 : 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
    C'est exact.

    En fait, tu as 2 notions pour le super pom : l'aggrégation et l'héritage. Voici rapidement leur description :

    L'aggrégation

    Ton super pom.xml indique qu'il aggrège plusieurs sous-projets, des modules. Cela se fait simplement en indiquant dans le super pom.xml les modules comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <project>
        ...
        <modules>
            <module>sous-projet1</module>
            <module>sous-projet2</module>
           ...
        </modules>
        ...
    </project>
    L'intérêt principal est que toute commande Maven exécutée au niveau du super pom.xml sera exécutée sur tous les sous-module (Maven se charge, grâce à l'analyse des dépendances entre les modules, de définir l'ordre de compilation). Ainsi, si tu lances la commande mvn package sur le super pom.xml, Maven va exécuter cette commande sur sous-projet1, sous-projet2, etc.

    L'héritage

    Un peu comme l'héritage en Java, l'héritage pour Maven permet de définir, au niveau du pom.xml parent, des informations / propriétés communes à plusieurs sous projets. Par exemple, admettons que j'ai 2 sous projets, les 2 ayant pour dépendance log4j.
    La 1e idée serait de mettre la dependency dans les pom.xml des 2 projets.
    L'autre idée est de mettre la dépendence dans le pom.xml parent, et que les pom.xml des 2 sous projets héritent du pom.xml parent :

    Pom.xml parent :

    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
     
    <project>
        <modelVersion>4.0.0</modelVersion>
        <groupId>monGroupe</groupId>
        <artifactId>monParent</artifactId>
        <packaging>pom</packaging>
        <version>1.0</version>
        ...
        <dependencies>
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.8</version>
                <type>jar</type>
            </dependency>
            ...
        </dependencies>
    </project>
    Dans chaque pom.xml des sous projet:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <project>
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>monGroupe</groupId>
            <artifactId>monParent</artifactId>
            <version>1.0</version>
        </parent>
        <artifactId>maLibrairie</artifactId>
        <packaging>jar</packaging>
        ...
    </project>

    Un pom.xml peut être soit une aggrégation soit un pom parent, mais peut également être les deux (je pense que généralement on aura soit aggrégation+parent soit parent tout seul).
    A noter que dans les 2 cas, le type de projet (packaging) pour ce super pom.xml est de type POM.


    Voilà voilà...
    Si tu as des questions, n'hésite pas !
    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
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 76
    Par défaut
    Merci beaucoup c'est parfait je vais tester ca de suite.
    bassem

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

Discussions similaires

  1. settings , super pom , pom
    Par javadevelopper dans le forum Maven
    Réponses: 6
    Dernier message: 18/11/2009, 10h40
  2. Creation possible ? Groupe1=User1+User2.. DEBUTANT
    Par superwiner dans le forum Administration
    Réponses: 0
    Dernier message: 18/06/2008, 18h09
  3. Super pom d'entreprise
    Par Jibee dans le forum Maven
    Réponses: 3
    Dernier message: 17/09/2007, 13h14
  4. [Maven] Localisation du Super POM
    Par DanielW33 dans le forum Maven
    Réponses: 2
    Dernier message: 28/11/2006, 15h24
  5. [Maven2]création d'un repository maven
    Par xixi31 dans le forum Maven
    Réponses: 6
    Dernier message: 31/08/2006, 09h26

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