Filtering Maven files into WEB-INF
Solution 1
<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.
Solution 2
you should configure filtering via the maven war plugin: checkout these examples.
Related videos on Youtube
Comments
-
Reinout van Rees over 4 years
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.
-
Bozho over 14 yearsI added the maven-2 tag, I guess you don't mind.
-
-
Reinout van Rees over 14 yearsWould have accepted this as well if I could thanks to links, but @peakit wins due to cut and paste laziness for me.
-
tomasz_kusmierczyk over 10 yearsJust an observation to add, version 2.4 doesn't seem to work with this configuration, the most recent and working with this setting I found was 2.3, cheers.
-
Garret Wilson over 7 yearsHow is this different than simply configuring the
src/main/webapp
directory as a filtered resource directory as any other? What benefit is there to associate it with a configuration of themaven-war-plugin
?