0

我有一个 JEE6 Web 应用程序项目。项目结构符合 maven 约定。

现在我已经为这个项目引入了额外的 web.xml 文件。

所以它们现在存储在 WEB-INF 中,如下所示:

WEB-INF/

     |__ A/web.xml

     |__ B/web.xml

什么是构建战争以根据属性包含正确 xml 的 Maven 方式。

我知道如何在 maven 中添加自定义属性。但是我找不到如何配置 maven 插件,以便在构建 war 文件期间它选择适当的文件。

非常欢迎在这种情况下提供任何提示/建议/maven 最佳实践。

谢谢!!

4

1 回答 1

3

maven war 插件可以配置为添加和过滤一些外部资源。请参阅http://maven.apache.org/plugins/maven-war-plugin/examples/adding-filtering-webresources.html

所以我会用 2 个 war 插件配置制作 2 个 maven配置文件,如下所示:

   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.3</version>
    <configuration>
      <webResources>
        <resource>
          <!-- this is relative to the pom.xml directory -->
          <directory>src/main/webapp/WEB-INF/__A</directory>
          <includes>
            <include>web.xml</include>
          </includes>
          <targetPath>WEB-INF</targetPath>
        </resource>
      </webResources>
    </configuration>
  </plugin>
  <!-- repeat for your second profile -->

但我认为更好的解决方案(如果您的项目允许的话)是只保留一个 web.xml 文件,其中包含一些过滤属性。在这种情况下,您应该只配置您的 war 插件以启用一些过滤,如下所示:

<plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.3</version>
    <configuration>
      <filteringDeploymentDescriptors>true</filteringDeploymentDescriptors>
    </configuration>
  </plugin>
于 2013-07-03T10:56:59.550 回答