Je travaille actuellement sur un projet existant contenant un fichier pom.xml avec les éléments suivants:
<resources>
<resource>
<filtering>false</filtering>
<directory>src</directory>
<includes>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
J'ai dans le chemin de base un répertoire appelé propriétés qui contient des fichiers de propriétés. Je veux copier lors de la compression de tous les fichiers de propriétés contenus sous propriétés/dans mon répertoire src (sinon, le programme planterait en raison de fichiers de configuration manquants).
Donc ma question est:
Comment puis-je, avec Maven, inclure des fichiers de ressources qui ne se trouvent pas dans le répertoire src?
J'essaie celui-ci mais cela ne semble pas fonctionner:
<resources>
<resource>
<filtering>false</filtering>
<directory>src</directory>
<includes>
<include>**/*.properties</include>
<include>../properties/**</include>
</includes>
</resource>
</resources>
Merci de votre aide.
Si votre structure de fichier ressemble à ceci: Disposition de répertoire standard
Ensuite, vous ne devez pas ajouter les ressources elemt. Maven copie par default tous les fichiers et dossiers qui se trouvent dans votre dossier/src/main/resources dans votre dossier de construction et les localise à la racine de vos fichiers de chemin de classe compilés.
Si vous avez, par exemple, un fichier nommé configuration.properties situé dans /src/main/resources/configuration.properties
, lors de l'exécution de mvn clean compile
, ce fichier sera copié dans votre /target/classes/configuration.properties
So, si vous supprimez cette partie, les fichiers seront situés où vous le souhaitez. leur
<resource>
<filtering>false</filtering>
<directory>src</directory>
<includes>
<include>**/*.properties</include>
</includes>
</resource>
En migrant des projets ant en maven sans changer la structure du projet, définissez votre répertoire sourceDirectory testSourceDirectory dans la construction et utilisez le plug-in maven-resource-plugin comme il convient, veillez à la phase d'exécution des objectifs.
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>copy-resources01</id>
<phase>process-classes</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/classes</outputDirectory>
<encoding>UTF-8</encoding>
<resources>
<resource>
<directory>${basedir}/src</directory>
<includes>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
<execution>
<id>copy-resources02</id>
<phase>verify</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/build/lib</outputDirectory>
<encoding>UTF-8</encoding>
<resources>
<resource>
<directory>${basedir}/target/</directory>
<include>*.jar</include>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
Pour tout copier de la source à la destination, j’ai utilisé
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>process-classes</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/classes/static/</outputDirectory>
<resources>
<resource>
<directory>${basedir}/gui/build/</directory>
<includes>
<include>**/*.*</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>