将Maven文件过滤到WEB-INF中

我试图添加一些过滤到驻留在WEB-INF目录中的应用程序上下文文件。

我在文件夹/ src / main / resources中有要过滤的文件(xmlgateway-context.xml)。

我在文件夹src / main / filters中有属性文件(config-e05.properties)

我有POM设置如下:

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

这将mvn安装正确,但是当我打开输出的战争文件,我期待文件xmlgateway-context.xml在/ WEB-INF目录,但它最终在文件夹/ WEB-INF / classes / WEB -INF。

我怎样才能得到这个文件到正确的地方。

或者,我可以将应用程序上下文放到不同的位置,并在那里引用它。

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

把上面的代码添加到你的pom.xml中。 编辑:只是为了解释上面的conf是在做什么。 有了这个补充,mvn将过滤src/main/webapp/WEB-INF的文件,特别是过滤包含的文件xmlgateway-context.xml ,过滤后将推送文件在WEB-INF文件夹(即什么target标签在说)。

如果不清楚,请更新。

你应该通过maven war插件configuration过滤:检查这些例子 。

将filteringDeploymentDescriptors设置为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> 

将文件xmlgateway-context.xml放在src / main / webapp / WEB-INF中,然后像这样configuration:

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