将 Maven 文件筛选到 WEB-INF 中

2022-09-01 00:53:44

我正在尝试向应用程序上下文文件添加一些筛选,该文件位于 WEB-INF 目录中。

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

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

我的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/classes/WEB-INF中。

我怎样才能将此文件放入正确的位置。

或者,我是否可以将应用程序上下文放在其他位置,并在那里引用它。


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

将上述内容添加到您的pom.xml。编辑:只是为了解释上面的conf在做什么。添加此内容后,mvn将过滤文件,特别是过滤包含的文件,过滤后,它将文件推送到文件夹中(这就是标签所说的)。src/main/webapp/WEB-INFxmlgateway-context.xmlWEB-INFtarget

如果不清楚,请更新。


答案 2

您应该通过maven war插件配置过滤:查看这些示例


推荐