Merge 简单WAR文件合并-用第二个WAR文件覆盖第一个WAR文件

Merge 简单WAR文件合并-用第二个WAR文件覆盖第一个WAR文件,merge,war,cargo,maven-cargo,Merge,War,Cargo,Maven Cargo,我只想合并两个WAR文件,用第二次WAR中的文件覆盖第一次WAR中的相应文件,即输出WAR将包含第二次WAR中的web.xml(如果存在)。我试图使用cargo-maven2-plugin,但我有问题。Cargo有一些复杂的机制来合并web.xml,在大多数情况下,结果与我需要的不同 我尝试了一些uberwar配置,类似于以下配置: (一) xyz:核心模块 xyz:核心扩展模块 web.xml (二) xyz:核心模块 xyz:核心扩展模块 web.xml $left:servlet名称

我只想合并两个WAR文件,用第二次WAR中的文件覆盖第一次WAR中的相应文件,即输出WAR将包含第二次WAR中的web.xml(如果存在)。我试图使用cargo-maven2-plugin,但我有问题。Cargo有一些复杂的机制来合并web.xml,在大多数情况下,结果与我需要的不同

我尝试了一些uberwar配置,类似于以下配置:

(一)


xyz:核心模块
xyz:核心扩展模块
web.xml
(二)


xyz:核心模块
xyz:核心扩展模块
web.xml
$left:servlet名称
$right:servlet类
$left:参数名称
$right:参数值

在这两种情况下,我都得不到我想要的,甚至得不到与我想要的类似的东西。你知道我做错了什么吗?或者货物不是一个很好的工具。。。你知道还有其他工具可以做同样的事情并且可以与Maven集成吗?谢谢。

这可以使用完成。如果顺序未声明为战争顺序,则以相同的顺序覆盖出现项,并声明依赖项


要完全控制覆盖,应使用覆盖元素。

我在主题探索期间注意到覆盖功能,但我不确定是否需要这种行为。多亏了你的回答,我对叠加做了更多的调查,现在我发现合并功能是需要的。谢谢
<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>
<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>