maven-war-plugin overlay removes /META-INF/context.xml



有3个maven项目:

  • my-overlay(这是一场只包含上下文的覆盖的蓝图战争.xml)
  • 我的基地(这是一个在真实战争范围内使用的pom)
  • my-webapp(作为 my-base 的子项目在生产中使用的最终项目)

我将我的覆盖层作为一个打包为战争的 maven 项目:

+ my-overlay
  + src
    + main
      + webapp
        + META-INF
          + context.xml
        + hello.jpg
  + pom.xml

最终的my-overlay.war包含/META-INF/context.xml/hello.jpg

现在我有另一个项目

+ my-base
  + pom.xml

pom.xml中具有此 XML:

<packaging>pom</packaging>
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-war-plugin</artifactId>
      <version>2.6</version>
      <configuration>
        <overlays>
          <overlay>
            <id>my-overlay</id>
            <excludes /> <!-- remove the exlude of /META-INF/ -->
          </overlay>
          <overlay></overlay>
        </overlays>
      </...>

我还有第三个 maven 项目:

+ my-webapp
  + main
    + webapp
      + index.jsp
  + pom.xml

pom.xml中有这个:

<parent> ... my-base ...</parent>
<packaging>war</packaging>

因此,如果我使用 mvn install 构建 my-webapp 项目,则覆盖层支持hello.jpg但不支持context.xml。但是我删除了覆盖层中的默认排除。

如何让覆盖层支持META-INF/context.xml

顺便说一句:令人惊讶的是,my-webapp/target/war/work/mygroup/my-overlay/META-INF/context.xml存在!

已确认的阻止程序错误,为 3.0.0 准备

https://issues.apache.org/jira/browse/MWAR-367

最新更新