Ce site met a disposition le build journalier de la traduction francaise du Maven: The Definitive Guide
Consultez :
  • Les documents de reference sur le projet original
  • Les sources de la traduction fr sur GitHub
  • maven


    6.2. Le projet parent

    Un projet multimodule est défini par un POM parent référençant un ou plusieurs sous-modules. Dans le répertoire simple-parent/, vous trouverez le POM parent (également appelé POM de plus haut niveau) dans le fichier simple-parent/pom.xml. Consultez l'Exemple 6.1, « POM du projet simple-parent ».

    Exemple 6.1. POM du projet simple-parent

    <project xmlns="http://maven.apache.org/POM/4.0.0" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
                          http://maven.apache.org/maven-v4_0_0.xsd">
      <modelVersion>4.0.0</modelVersion>
    
      <groupId>org.sonatype.mavenbook.multi</groupId>
      <artifactId>simple-parent</artifactId>
      <packaging>pom</packaging>
      <version>1.0</version>
      <name>Multi Chapter Simple Parent Project</name>
     
      <modules>
        <module>simple-weather</module>
        <module>simple-webapp</module>
      </modules>
    
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-compiler-plugin</artifactId>
              <configuration>
                <source>1.5</source>
                <target>1.5</target>
              </configuration>
            </plugin>
          </plugins>
       </pluginManagement> 
      </build>
    
      <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>3.8.1</version>
          <scope>test</scope>
        </dependency>
      </dependencies>
    </project>
    
    

    Remarquez que le parent définit un ensemble de coordonnées Maven : le groupId avec pour valeur org.sonatype.mavenbook.multi, l'artifactId ayant pour valeur simple-parent et la version 1.0. Le projet parent ne crée pas de JAR ni de WAR comme c'était le cas de nos projets précédents. À la place, il s'agit simplement d'un POM qui fait référence à d'autres projets Maven. Le packaging approprié pour un projet du type simple-parent qui fournit un simple Modèle Objet de Projet (Project Object Model) est pom. La section suivante du fichier pom.xml liste les sous-modules du projet. Ces modules sont déclarés via une balise XML modules et chacune des balises module qu'elle contient correspond à un des sous-répertoires du dossier simple-parent/. Maven sait qu'il faut chercher pour chacun de ces répertoires un fichier pom.xml. Ainsi, il ajoutera ces sous-modules à la liste des projets Maven inclus dans le build.

    Enfin, nous définissons quelques préférences qui seront héritées dans tous les sous-modules. La configuration du build du projet simple-parent définit la JVM Java 5 comme cible de compilation. Comme le plugin Maven Compiler est attaché au cycle de vie par défaut, il est possible d'utiliser la section pluginManagement du fichier pom.xml pour effectuer cela. Nous discuterons de la balise pluginManagement plus en détail dans les chapitres suivants, mais la configuration des plugins par défaut et l'ajout de nouveaux plugins sont ainsi beaucoup plus faciles à voir lorsqu'ils sont dissociés de cette manière. La balise dependencies ajoute JUnit 3.8.1 comme une dépendance globale. La configuration du build comme les dépendances sont héritées dans tous les sous-modules. L'utilisation de l'héritage de POM vous permet d'ajouter des dépendances communes pour les dépendances universelles comme JUnit ou Log4J.