| Ce site met a disposition le build journalier de la traduction francaise du Maven: The Definitive Guide Consultez : | ![]() |
Si nous regardons les configurations des différents plugins, nous pouvons remarquer la réplication en plusieurs endroits des dépendances HSQLDB. Malheureusement,
dependencyManagement ne s'applique pas aux dépendances des plugins, mais nous pouvons tout de
même utiliser une propriété pour uniformiser les versions. Les projets Maven multimodule complexes ont tendance à
définir toutes les versions dans le POM de plus haut niveau. Ce POM de plus
haut niveau devient le point central pour les modifications qui impactent tout le projet. Voyez les numéros de
versions comme des chaînes de caractères dans une classe Java. Si vous répétez constamment une phrase, vous allez
probablement en faire une variable afin de n'avoir à la modifier qu'à un seul endroit lorsque vous devrez la
changer. Remonter la version de HSQLDB dans une propriété du POM de plus haut
niveau se fait au travers de la balise XML properties :
<project>
...
<properties>
<hibernate.annotations.version>3.3.0.ga</hibernate.annotations.version>
<hsqldb.version>1.8.0.7</hsqldb.version>
</properties>
...
</project>
Nous pouvons noter que la configuration de hibernate3-maven-plugin est dupliquée dans les
modules simple-webapp et simple-command. Il est possible de gérer la
configuration des plugins dans le POM de plus haut niveau de la même manière que pour la gestion
des dépendances avec la section dependencyManagement de ce POM. Pour ce faire,
nous allons utiliser la balise XML pluginManagement sous la balise XML build
du POM de plus haut niveau :
<project>
...
<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>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>hibernate3-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<components>
<component>
<name>hbm2ddl</name>
<implementation>annotationconfiguration</implementation>
</component>
</components>
</configuration>
<dependencies>
<dependency>
<groupId>hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>${hsqldb.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</pluginManagement>
</build>
...
</project>