warsourcedirectory plugin from files exclude example dependency maven war

plugin - Maven: ¿cómo obtener un paquete de guerra con recursos copiados en WEB-INF?



maven war plugin warsourcedirectory (3)

cuando creo un paquete war con maven, los archivos y directorios bajo el directorio "src / main / resources" se copian en / WEB-INF / classes en lugar de / WEB-INF. ¿Cómo puedo hacer que se copien en / WEB-INF?

gracias rand

ACTUALIZACIÓN: en mi pom ahora uso esto:

<plugin> <artifactId>maven-resources-plugin</artifactId> <version>2.4.3</version> <executions> <execution> <id>copy-resources</id> <!-- here the phase you need --> <phase>war</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>myapp/target/WEB-INF</outputDirectory> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> </configuration> </execution> </executions> </plugin>

y lanzo mvn con:

mvn -Dmaven.test.skip = recursos de paquetes limpios verdaderos: recursos de copia

pero obtuve: [INFO] Uno o más parámetros de complemento necesarios no son válidos / faltan para ''recursos: copiar recursos''

[0] Dentro de la definición de plugin ''maven-resources-plugin'' especifique lo siguiente:

... VALOR.

[1] Dentro de la definición de plugin ''maven-resources-plugin'' especifique lo siguiente:

... VALOR.

Estoy usando maven 2.2 y el fragmento de código es básicamente el mismo de la documentación, ¿alguna idea?


Esta configuración está funcionando agregar complemento pom.xml

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>${jdk.version}</source> <target>${jdk.version}</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.3</version> <configuration> <webResources> <!--copy resource file location--> <resource> <directory>${project.build.directory}/classes</directory> </resource> </webResources> <!--location for add file--> <webappDirectory>${project.build.directory}/${project.build.finalName}</webappDirectory> </configuration> </plugin>


Los recursos web no son lo mismo que los recursos de java, que se deben colocar en la ruta de clase. Los recursos web se procesan a través del plugin war y se deben colocar en src/main/webapp/WEB-INF/ . En este caso, funcionará automáticamente sin ninguna configuración adicional en el archivo pom.xml.


configure el parámetro outputDirectory de los resources:resources complemento de resources:resources , o ponga sus archivos en el directorio src/main/webapp/WEB-INF/ . complemento de recursos

EDITAR:

Esta configuración está funcionando para mí:

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>2.4.2</version> <executions> <execution> <id>default-copy-resources</id> <phase>process-resources</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <overwrite>true</overwrite> <outputDirectory>${project.build.directory}/${project.artifactId}-${project.version}/WEB-INF/</outputDirectory> <resources> <resource> <directory>${project.basedir}/src/main/resources</directory> </resource> </resources> </configuration> </execution> </executions> </plugin>

puede ejecutar una fase en la forma somePhase o una meta somePlugin:someGoal . Las invocaciones de fase invocarán todos los objetivos de los complementos enganchados en las fases en el intervalo [validar, fase] en orden, por lo que no es necesario llamarlos explícitamente.