我正在尝试合并两个战争,从而使用 maven uber war cargo-maven2-plugin 合并 web.xml 文件。所有标签(过滤器,servlet)的合并都按需要进行,但因为<context-param>
它只合并 RHS 上 web.xml 中定义的第一个元素,我想保留 LHS 上 web.xml 上的所有上下文参数合并所有<context.param>
元素在我的 RHS 上的 web.xml 中定义任何帮助将不胜感激。这是我的代码
RHS 上的 web.xml
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- ** SPRING ** -->
<context-param>
<param-name>contextInitializerClasses</param-name>
<param-value>com.myorg.context.MyApplicationContextInitializer</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:conf/spring/*.xml</param-value>
</context-param>
<context-param>
<description>Location(s) to search for the Log4J config file</description>
<param-name>log4jConfigLocation</param-name>
<param-value>file:/dir/path/log4j.xml /WEB-INF/log4j.xml</param-value>
</context-param>
<context-param>
<description>
Boolean flag indicating whether internal Log4J debugging statements should be written. Log4J
will write debugging messages to System.out and error messages to System.err.
</description>
<param-name>log4jConfigDebug</param-name>
<param-value>false</param-value>
</context-param>
**
- 合并.xml
**
<?xml version="1.0"?>
<uberwar>
<wars>
<war>org.forgerock.openam:openam-server</war>
<war>com.myorg.xyz.addons:my-sso-addons-web</war>
</wars>
<merges>
<merge>
<type>web.xml</type>
<parameters>
<default>
<!-- Preserve execution order of filter-mappings -->
<tag name="context-param">
<strategy name="ChooseByName">
<default>
<strategy name="Preserve" />
</default>
<choice name="contextInitializerClasses">
<strategy name="Overwrite" />
</choice>
<choice name="contextConfigLocation">
<strategy name="Overwrite" />
</choice>
<choice name="log4jConfigLocation">
<strategy name="Overwrite" />
</choice>
</strategy>
</tag>
<tag name="filter-mapping">
<strategy name="Preserve"/>
</tag>
</default>
</parameters>
</merge>
</merges>
</uberwar>
pom.xml
<!-- other entries are here -->
<packaging>uberwar</packaging>
<build>
<plugins>
<!-- merges openam-server with openam-addons-web-common -->
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<!-- merges the wars -->
<descriptor>src/assembly/merge.xml</descriptor>
<configuration>
<type>existing</type>
<home>${jboss.home}/aclsso</home>
</configuration>
<deployer>
<type>installed</type>
</deployer>
<deployables>
<deployable>
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<type>war</type>
<properties>
<context>openam</context>
</properties>
</deployable>
</deployables>
</configuration>
</plugin>
</plugins>
</build>