java - pom - packagingexcludes maven
Filtrar archivos Maven en WEB-INF (4)
Coloque el archivo xmlgateway-context.xml en src / main / webapp / WEB-INF y configúrelo así:
<build>
<filters>
<filter>src/main/filters/config-${targetenv}.properties</filter>
</filters>
<resources>
<resource>
<filtering>true</filtering>
<directory>src/main/webapp/WEB-INF</directory>
</resource>
</resources>
</build>
Estoy tratando de agregar algunos filtros al archivo de contexto de la aplicación, que reside en el directorio WEB-INF.
Tengo el archivo que se va a filtrar (xmlgateway-context.xml) en la carpeta / src / main / resources.
Tengo los archivos de propiedades (config-e05.properties) en la carpeta src / main / filters
Y tengo el POM configurado de la siguiente manera:
<!-- environment profiles -->
<profiles>
<profile>
<id>e04</id>
<properties>
<targetenv>e04</targetenv>
</properties>
</profile>
<profile>
<id>e05</id>
<properties>
<targetenv>e05</targetenv>
</properties>
</profile>
</profiles>
<!-- build settings (filtering) -->
<build>
<filters>
<filter>src/main/filters/config-${targetenv}.properties</filter>
</filters>
<resources>
<resource>
<targetPath>WEB-INF</targetPath>
<filtering>true</filtering>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
Esto se puede instalar correctamente, pero cuando abro el archivo de guerra de salida, esperaba que el archivo xmlgateway-context.xml estuviera en el directorio / WEB-INF, pero termina en la carpeta / WEB-INF / classes / WEB -INF.
¿Cómo puedo obtener este archivo en el lugar correcto?
Alternativamente, ¿puedo poner el contexto de la aplicación en una ubicación diferente y hacer que se haga referencia allí?
Con filtrosDeploymentDescriptors establecido en true
<build>
<finalName>web-project-name</finalName>
<filters>
<filter>src/main/resources/app.properties</filter>
</filters>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<compilerArguments>
<endorseddirs>${endorsed.dir}</endorseddirs>
</compilerArguments>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
<filteringDeploymentDescriptors>true</filteringDeploymentDescriptors>
</configuration>
</plugin>
</plugins>
</build>
deberías configurar el filtrado a través del plugin maven war : consulta estos ejemplos .
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<webResources>
<resource>
<directory>${basedir}/src/main/webapp/WEB-INF</directory>
<filtering>true</filtering>
<targetPath>WEB-INF</targetPath>
<includes>
<include>**/xmlgateway-context.xml</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
</plugins>
Agregue lo anterior a su pom.xml. EDITAR: Solo para explicar lo que está haciendo el conf de arriba. Con esto agregado, mvn va a filtrar archivos en src/main/webapp/WEB-INF
y en particular filtrar los archivos incluidos xmlgateway-context.xml
y después de filtrarlos va a insertar los archivos en la carpeta WEB-INF
(eso es la etiqueta de target
está diciendo).
Actualiza si algo no está claro.