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 :

settings , super pom , pom


Sujet :

Maven Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2009
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 53
    Par défaut settings , super pom , pom
    Bonjour à tous,

    Etant débutant en maven, j'ai lu quelques documentations à son propos et j'ai trouvé parler de la notion d'héritage entre sitting et super pom et pom.
    Dans ces documents on parle aussi des bonnes pratiques de répartitions des valeurs de configurations entre ces trois pour aboutir aux poms les plus légers possibles.
    Ma question est alors :
    1) pourriez vous me spécifier avec précision les bonnes pratiques de défintions de ces trois fichiers, les porprités qui doivent figurer dans un fichier et non dans les autres...
    2) concernant plagunin-registry.xml : quand l'utiliser? les versions a fixer? seront-elles toujours les dernières?

    Peut etre que je pose pas mon probleme clairement si ma demande ne pas claire, posez moi les points à eclaircir.

    merci.

  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
    Le settings.xml va essentiellement contenir les informations transverses à tous tes projets : localisation de ton repository local, url des repositories distants, proxy, définition de certains serveurs, et éventuellement quelques propriétés communes.

    Le super pom d'un projet multi-modules va regrouper surtout les paramètres communs : dépendances, plugins, rapports, etc.

    Ensuite, chaque projet ou module doit avoir un pom.xml le plus léger possible qui ne répertorie que les informations qui lui sont propres.
    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
    Membre confirmé
    Inscrit en
    Octobre 2009
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 53
    Par défaut re
    Merci à vous Monsieur,

    vous me disez quoi en propos de plugin-registry.xml?

  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 : 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 un fichier peu utilisé, qui configure la façon dont Maven va gérer les versions des plugins.
    Personnellement, surtout si tu es assez novice avec Maven, je te conseille de ne pas te préoccuper de ce fichier.

    Une règle d'or : toujours indiquer la version d'un plugin que l'on utilise dans son pom.xml.

    Bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.0.2</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
    </plugins>
    Pas bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
    </plugins>
    Hélas, dans les exemples (y compris sur le site officiel de Maven !), la 2e solution est souvent montrée...
    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
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Seine et Marne (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 197
    Par défaut
    @Romain Bouhhhhh. C'est pas vrai désormais on note dès que possible la version des plugins
    Histoire de montrer les bonnes pratiques, tous les plugins que l'on ne rattache pas au cycle de vie Maven via une execution (sous-tags <executions>..) doivent être configuré dans le pluginManagement afin de ne pas forcer Maven à les charger :
    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
     
    <build>
      <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.0.2</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
        </plugins>
      </pluginManagement>
    </build>
    Autre bonne pratique utiliser les propriétés de configuration des plugins plutot que la configuration (pour tous les types primitifs de config - string, int, ...) car cela permet à un sous projet de changer la configuration en une ligne de propriété et non pas en 10 via la reconfiguration du plugin :
    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
     
    <properties>
        <!-- maven-compiler-plugin -->
        <maven.compiler.target>1.5</maven.compiler.target>
        <maven.compiler.source>1.5</maven.compiler.source>
    </properties>
    <build>
      <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.0.2</version>
            </plugin>
        </plugins>
      </pluginManagement>
    </build>
    Ca donne donc ce genre de POM parent au final :
    http://svn.exoplatform.org/projects/.../trunk/pom.xml

  6. #6
    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
    Effectivement, ce sont des bonnes pratique. Dis moi, tu as l'air de t'y connaitre en Maven, tu devrais écrire un livre là-dessus

    Sinon, je suis désolé, mais j'ai encore plein d'exemples sur le site officiel de Maven (enfin, les sites des plugins) où ils n'utilisent pas la version :

    http://maven.apache.org/plugins/mave...gin/usage.html
    http://maven.apache.org/plugins/mave...gin/usage.html
    http://maven.apache.org/plugins/mave...gin/usage.html
    ...

    Après, la doc officielle sur Maven lui-même, je ne sais pas trop, j'évite d'y trainer
    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

Discussions similaires

  1. Sous super-pom ?
    Par BakaOnigiri dans le forum Maven
    Réponses: 7
    Dernier message: 08/07/2011, 12h14
  2. <parent> <Repository> - settings.xml vs pom.xml
    Par RémyYves dans le forum Maven
    Réponses: 5
    Dernier message: 16/05/2009, 00h30
  3. [MAVEN2] creation possible d'un super POM?
    Par bassemeco dans le forum Maven
    Réponses: 7
    Dernier message: 18/01/2008, 11h49
  4. Super pom d'entreprise
    Par Jibee dans le forum Maven
    Réponses: 3
    Dernier message: 17/09/2007, 14h14
  5. [Maven] Localisation du Super POM
    Par DanielW33 dans le forum Maven
    Réponses: 2
    Dernier message: 28/11/2006, 16h24

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