3

我需要web.xml使用 Maven 创建两个带有两个不同文件的 WAR 文件。WAR 文件在其他方面是相同的。

WAR 文件按预期创建,但是,第二个文件与第一个文件具有相同的web.xml文件。

如何强制 Maven WAR 插件将第二个文件用于第二个 WAR?我不能使用配置文件,因为我需要一次创建两个文件。

我当前的代码:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-war-plugin</artifactId>
  <version>2.2</version>
  <configuration>
    <warSourceDirectory>${basedir}/WEB</warSourceDirectory>
    <warName>main</warName>
    <webXml>${basedir}/CONF/web.xml</webXml>
  </configuration>
  <executions>
    <execution>
      <id>hist-war</id>
      <phase>package</phase>
      <goals>
        <goal>war</goal>
      </goals>
      <configuration>
        <warName>hist</warName>
        <warSourceDirectory>${basedir}/WEB</warSourceDirectory>
        <webXml>${basedir}/CONF/hist.web.xml</webXml>
      </configuration>
    </execution>
  </executions>
</plugin>
4

2 回答 2

4

使用Maven WAR 插件的覆盖特性。

您需要两个 WAR 项目。第一个是您的原始文件,其web.xml文件位于正确的位置。这在配置方面没有任何特定需求。只需确保它按照您的预期构建即可。

第二个只包含它的 POM 和目录web.xml中的备用WEB-INF。该项目的 POM 必须包含对第一个项目的依赖项,其类型指定为 war,范围指定为运行时。您不需要显式配置 Maven WAR 插件。

于 2012-09-17T13:36:59.773 回答
0

似乎有各种使用战争插件的陷阱。在这种情况下,我将只使用 2 个单独的子模块来构建适当的战争。

于 2012-09-17T13:34:13.587 回答