Build Helper Maven

De EjnTricks

Cet article présente l'utilisation du plugin build-helper-maven-plugin permettant de gérer les reousrces des projets.

Les exemples décrits sont disponibles sous ce lien : http://www.dev.jouvinio.net/svn/study/trunk/maven/build-helper-maven-plugin


Hand-icon.png Votre avis

Nobody voted on this yet

 You need to enable JavaScript to vote


Study icon.png Etude

Par défaut, un projet Jar sous Maven se structure en deux fois deux répertoires.

  • src/main/java, contient le code source Java du projet;
  • src/main/resources contient les resources, autre que le code Java;
  • src/test/java, contient le code source Java des tests du projet;
  • src/test/resources contient les resources poru les tests, autre que le code Java;

Il est parfois nécessaire de rajouter des répertoires sources, comme lors de code auto-généré par des frameworks de webservice, dans la structure du projet.

Le plugin build-helper-maven-plugin permet de contrôler la structure des projets.


Update icon.png Ajout répertoire source

Start-icon.png Mise en place

Dans cet exemple, deux répertoires de sources sous ajoutés à la structure principale.

<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>fr.ejn.tutorial.maven</groupId>
  <artifactId>build-helper-maven-plugin</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>Study Build Helper plugin</name>
  <description>Example for the Maven Build Helper plugin</description>
  <contributors>
    <contributor>
      <name>Etienne Jouvin</name>
      <email>etienne.jouvin@free.fr</email>
      <organization>Jouvinio</organization>
      <organizationUrl>http://www.jouvinio.net/wiki</organizationUrl>
      <timezone>+1</timezone>
      <roles>
        <role>Java Developer</role>
      </roles>
    </contributor>
  </contributors>
  <scm>
    <connection>scm:svn:http://www.dev.jouvinio.net/svn/study/trunk/maven/build-helper-maven-plugin/</connection>
    <developerConnection>scm:svn:https://www.dev.jouvinio.net/svn/study/trunk/maven/build-helper-maven-plugin/</developerConnection>
    <url>http://www.dev.jouvinio.net/svn/study/trunk/maven/build-helper-maven-plugin/</url>
  </scm>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
  </properties>
  <build>
    <sourceDirectory>src/main/java/first</sourceDirectory>
    <testSourceDirectory>src/test/java</testSourceDirectory>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
      </resource>
    </resources>
    <testResources>
      <testResource>
        <directory>src/test/resources</directory>
      </testResource>
    </testResources>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>3.0.0</version>
        <executions>
          <execution>
            <id>add-source</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>add-source</goal>
            </goals>
            <configuration>
              <sources>
                <source>src/main/java/second</source>
                <source>src/main/java/third</source>
              </sources>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.7.0</version>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

Pour cet exemple, l'emplacement par défaut du code est spécifié à src/main/java/first à l'aide de la configuration sourceDirectory.

Deux répertoires src/main/java/second et src/main/java/third sont ajoutés en tant que répertoire de sources du projet. L'organisation du projet obtenue est la suivante:


Warning-icon.png Implémentation Eclipse

Afin de pouvoir fonctionner, il est nécessaire de rajouter le connecteur buildhelper dans Eclipse. Une fois ajouté, les configurations mises en places sont interprétées.

A noter que par défaut les répertoires de source sont ajoutées dans un ordre différent que celui mis dans le fichier pom.xml, et même dans un ordre après le répertoire de source des tests.

Mais l'ordre peut se modifier directelent dans les préférences du projet.


Viewer icon.png Voir aussi

Documentation officielle: http://www.mojohaus.org/build-helper-maven-plugin/