proyecto pom plugin exclude example estructura java maven

java - pom - maven-resources-plugin example



Copiar mĂșltiples directorios de recursos a directorios de destino independientes con maven (6)

El plugin de recursos de Maven :

Este objetivo requiere que configure los recursos que se copiarán y especifique el outputDirectory.

Copie dos (o más) directorios de recursos externos dentro de la base de datos al directorio de salida de compilación usando maven (vea blah y uggh ).

${basedir}/ - pom.xml - blah/ - uggh/ - src/ - main/.. - test/.. - target/ - classes/.. - blah/ - uggh/

Por ejemplo, dada la estructura de directorios anterior, copie blah y uggh en el directorio de destino usando maven. Es fácil copiar uno u otro, sin embargo, el complemento solo acepta un único directorio de salida. Si especifica el directorio de target y ambos directorios como recursos, el contenido de cada directorio se copia al target pero no a los directorios.

El uso adicional del complemento sobrescribe la inicial. Además, he intentado especificar toda la basedir y solo incluir los directorios deseados. Esto no copia nada.

Aquí hay un ejemplo de copiar un solo directorio:

<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>


Aquí es donde termina el archivo:

<outputDirectory>${basedir}/target/blah</outputDirectory>

Aquí es donde se copia de:

<directory>src/main/otherresources</directory>

Habría una etiqueta <include> o <includes> para indicar el nombre del archivo

Múltiplos

Necesita múltiples <execution> s con diferentes <id> para múltiples carpetas:

<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>


Esta es la solución más simple que he encontrado y está funcionando ...

<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



Para mí, este funciona bien en 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>


Puedes usar patrones de estilo de hormigas

<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>


<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>