単純に 2 つの WAR ファイルをマージし、最初の WAR の対応するファイルを 2 番目の WAR のファイルで上書きします。つまり、出力 WAR には 2 番目の 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 と統合できる他のツールを知っていますか? ありがとう。