我想简单地合并两个 WAR 文件,用来自第二个 WAR 的文件覆盖第一个 WAR 中的相应文件,即输出 WAR 将包含来自第二个 WAR 的 web.xml(如果存在的话)。我正在尝试使用 cargo-maven2-plugin,但我遇到了问题。Cargo 有一些用于合并 web.xml 的复杂机制,在大多数情况下,结果与我需要的不同。
我尝试了一些类似于以下的 uberwar 配置:
1)
<uberwar>
<wars>
<war>com.xyz:core-module</war>
<war>com.xyz:core-extension-module</war>
</wars>
<merges>
<merge>
<type>web.xml</type>
<parameters>
<default>
<tag name="servlet">
<strategy name="Overwrite" />
</tag>
<tag name="servlet-mapping">
<strategy name="Overwrite" />
</tag>
</default>
</parameters>
</merge>
</merges>
</uberwar>
2)
<uberwar>
<wars>
<war>com.xyz:core-module</war>
<war>com.xyz:core-extension-module</war>
</wars>
<merges>
<merge>
<type>web.xml</type>
<parameters>
<default>
<tag name="servlet">
<strategy name="NodeMerge">
<servlet>
<servlet-name>$left:servlet-name</servlet-name>
<servlet-class>$right:servlet-class</servlet-class>
</servlet>
</strategy>
</tag>
<tag name="servlet-mapping">
<strategy name="NodeMerge">
<servlet-mapping>
<servlet-name>$left:param-name</servlet-name>
<url-pattern>$right:param-value</url-pattern>
</servlet-mapping>
</strategy>
</tag>
</default>
</parameters>
</merge>
</merges>
</uberwar>
在这两种情况下,我都没有得到我想要的,甚至没有得到与我想要的类似的东西。你知道我做错了什么吗?或者也许 Cargo 不是一个很好的工具......你知道任何其他可以做同样事情并且可以与 Maven 集成的工具吗?谢谢。