warsourcedirectory pom plugin packagingexcludes lib generate java maven-2 pom.xml

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>



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