Filtering Maven files into WEB-INF
java, maven-2, pom.xml
Solution
<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>
Add the above to your pom.xml. EDIT: Just to explain what the above conf is doing. With this added, mvn is going to filter files under `src/main/webapp/WEB-INF` and in particular filter the included files `xmlgateway-context.xml` and after filtering it is going to push the files in `WEB-INF` folder (thats what the `target` tag is saying).
Update if something is not clear.
Problem
I am trying to add some filtering to the application context file, which resides in the WEB-INF directory. I have the file which is to be filtered (xmlgateway-context.xml) in the folder /src/main/resources. I have the properties files (config-e05.properties) in the folder src/main/filters And I have the POM set up as follows: ``` <!-- 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> ``` This will mvn install correctly, but when I open the output war file, I was expecting the file xmlgateway-context.xml to be in the /WEB-INF directory, but it ends up in the folder /WEB-INF/classes/WEB-INF. How can I get this file into the right place. Alternatively, can I put the application context into a different location and have it referenced there.