我正在尝试向应用程序上下文文件添加一些过滤,该文件位于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,但是当我打开输出war文件时,我希望文件xmlgateway-context.xml位于/ WEB-INF目录中,但最终会在文件夹/ WEB-INF /中类/ WEB-INF。
如何将此文件放到正确的位置。
或者,我可以将应用程序上下文放在不同的位置并在那里引用它。
答案 0 :(得分:89)
<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中。
编辑:只是为了解释上述内容正在做什么。添加此内容后,mvn将过滤src/main/webapp/WEB-INF
下的文件,特别是过滤包含的文件xmlgateway-context.xml
,过滤后将推送WEB-INF
文件夹中的文件(这就是{ {1}}标签说。)
如果不清楚,请更新。
答案 1 :(得分:4)
您应该通过maven war plugin:checkout these examples配置过滤。
答案 2 :(得分:0)
将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>
答案 3 :(得分:-1)
将文件xmlgateway-context.xml放在src / main / webapp / WEB-INF中并配置如下:
<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>