Maven - 由Configuration Processor Plugin生成的包web.xml

时间:2012-04-02 13:46:08

标签: maven maven-assembly-plugin

在我们的web.xml中,有一个仅用于开发的片段,当应用程序部署到生产环境中时,它不能存在。当使用生产配置文件调用Maven时,我想使用Configuration Processor Plugin删除此片段。

转换本身很简单,但将生成的web.xml打包到WAR文件的最佳方法是什么?我正在将转换后的web.xml输出到目录 target / generated-sources 。 当生产配置文件处于活动状态时,我希望Maven使用此web.xml而不是src目录中的web.xml。如果此配置文件未激活,则应使用标准位置。

1 个答案:

答案 0 :(得分:3)

我创建了一个属性,比如webXml.path,并按照以下方式配置Maven:

<properties>
  <webXml.path>src/main/webapp/WEB-INF/web.xml</webXml.path>
</properties
...
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-war-plugin</artifactId>
      <configuration>
        <webXml>${webXml.path}</webXml>
      </configuration>
    </plugin>
  </plugins>
</build>
...
<profiles>
  <profile>
    <id>prod</id>
    <properties>
      <webXml.path>target/generated-sources/web.xml</webXml.path>
    </properties>
  </profile>
</profiles>