Le plugin ressources Maven :
Cet objectif nécessite que vous configuriez les ressources à copier et que vous spécifiiez outputDirectory.
Copiez deux répertoires de ressources externes (ou plus) dans la variable basedir
dans le répertoire de sortie de la construction à l'aide de maven (voir blah
et uggh
).
${basedir}/
- pom.xml
- blah/
- uggh/
- src/
- main/..
- test/..
- target/
- classes/..
- blah/
- uggh/
Par exemple, étant donné la structure de répertoire ci-dessus, copiez blah
et uggh
dans le répertoire cible à l'aide de maven. Il est facile de copier l’un ou l’autre, cependant, le plugin n’accepte qu’un seul outputDirectory. Si vous spécifiez le répertoire target
et les deux répertoires en tant que ressources, le contenu de chaque répertoire est alors copié dans target
, mais pas les répertoires eux-mêmes.
L'utilisation supplémentaire du plugin écrase l'initiale. De plus, j'ai essayé de spécifier l'intégralité de la basedir
et d'inclure uniquement les répertoires souhaités. Cela ne copie rien.
Voici un exemple de copie d'un seul répertoire:
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/blah</outputDirectory>
<resources>
<resource>
<directory>blah</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
C'est ici que le fichier se termine:
<outputDirectory>${basedir}/target/blah</outputDirectory>
C'est d'où il est copié:
<directory>src/main/otherresources</directory>
Il y aurait une balise <include>
ou <includes>
pour indiquer le nom du fichier
Multiples
Vous avez besoin de plusieurs <execution>
s avec différents <id>
s pour plusieurs dossiers:
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>copy-resources-1</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/blah</outputDirectory>
<resources>
<resource>
<directory>blah</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
<execution>
<id>copy-resources-2</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/ughh</outputDirectory>
<resources>
<resource>
<directory>ughh</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
Pour moi celui-ci fonctionne bien dans Maven 3:
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>custom-resources</id>
<phase>process-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
<resources>
<resource>
<targetPath>${basedir}/target/blah</targetPath>
<directory>blah</directory>
<filtering>true</filtering>
</resource>
<resource>
<targetPath>${basedir}/target/uggh</targetPath>
<directory>uggh</directory>
<filtering>false</filtering>
</resource>
<encoding>UTF-8</encoding>
</configuration>
</execution>
</executions>
</plugin>
C'est la solution la plus simple que j'ai trouvée et ça marche ...
<build>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<configuration>
</configuration>
</plugin>
</plugins>
<resources>
<resource>
<directory>${basedir}/src/main/Java/org/mc2/mymusic/gui/main/Menu/resources</directory>
<targetPath>${basedir}/target/classes/org/mc2/mymusic/gui/main/Menu/resources</targetPath>
<filtering>false</filtering>
</resource>
</resources>
</build>
Marco
Vous pouvez utiliser des modèles de style fourmi
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
<resources>
<resource>
<directory>${basedir}</directory>
<includes>
<include>blah/**</include>
<include>uggh/**</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
En lisant votre exemple, je ne pense pas que vous deviez inclure et configurer le plug-in maven-resource-plugin . Ajoutez simplement ces éléments de ressource à la balise <build><resources/>
-. Voir http://maven.Apache.org/ref/3.1.1/maven-model/maven.html#class_resource quelles autres balises vous pouvez utiliser.
<resources>
<resource>
<directory>${basedir}/src/scripts</directory>
<includes>
<include>data-octopus.ps1</include>
</includes>
<targetPath>${basedir}/target/data</targetPath>
</resource>
<resource>
<directory>${basedir}/src/scripts</directory>
<includes>
<include>service-octopus.ps1</include>
</includes>
<targetPath>${basedir}/target/service</targetPath>
</resource>
</resources>
</plugins>
...
</plugins>