Copier des fichiers avec Maven lors de vos builds

Il n’est pas rare que lors d’un build Maven (production d’un livrable), nous ayons besoin de copier des fichiers d’un endroit vers un autre:

  • fichiers de configurations
  • fichiers ressources pour constituer un livrable (cas d’usage que j’ai choisi en exemple)
  • plusieurs livrables pour n’en faire qu’un seul…

Pour ce genre de besoin, il existe le plugin maven-resources-plugin.

Usage:

Comme tout plugin maven, il doit être déclarer et configurer au niveau du POM (pom.xml) de votre projet.

<plugins>
 <plugin>
 <artifactId>maven-resources-plugin</artifactId>
 <version>2.6</version>
 <executions>
 <execution>
 <id>copy-scripts</id>
 <phase>package</phase>
 <goals>
 <goal>copy-resources</goal>
 </goals>
 <configuration>
 <outputDirectory>${basedir}/target/ZoumanaMavenCopyDemo</outputDirectory>
 <resources>
 <resource>
 <directory>src/main/resources</directory>
 <includes>
 <include>configuration.properties</include>
 <include>generateXML.sh</include>
 <include>generateXML.bat</include>
 </includes>
 </resource>
 </resources>
 </configuration>
 </execution>
 </executions>
 </plugin>
 

Explications:

Le plugin est capable de lancer plusieurs opérations de copies appelées « execution ». Chacune doit disposer d’un id unique (typiquement ce que ça fait) et d’une phase de déclenchement en rapport avec le cycle de vie Maven. Dans l’exemple que j’ai pris, j’ai besoin de copier des fichiers situés dans le répertoire de livrable (à la base du target): généré donc uniquement après la phase package (n’existe pas avant cette phase)

<id>copy-scripts</id>
 <phase>package</phase>

On peut donc enchainer autant d’executions que de phases de copies nécessaires.

Pour en savoir plus sur maven-resources-plugin

http://maven.apache.org/plugins/maven-resources-plugin/

Allez plus loin: construire un livrable ZIP avec les fichiers copier (jar, xml, properties, sql, scripts…) Ici

Comme toujours, n’hésitez pas à commenter et à me poser des questions si vous avez des difficultés la dessus.

@++

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s