| Ce site met a disposition le build journalier de la traduction francaise du Maven: The Definitive Guide Consultez : | ![]() |
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.