有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