2011-06-16 136 views
0

我想简单合并两个WAR文件,用第二个WAR中的文件覆盖第一个WAR中的相应文件即输出WAR将包含第二个WAR中的web.xml目前在那里。我正在尝试使用cargo-maven2-plugin,但是我遇到了问题。 Cargo有一些用于合并web.xml的复杂机制,在大多数情况下,结果与我所需要的不同。简单的WAR文件合并 - 用第二个WAR文件覆盖第一个WAR文件

我试过类似以下的人一些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集成吗?谢谢。

回答

1

这可以使用Maven War Plugin来完成。如果未声明overlays订单,则战争叠加的顺序以相同的顺序出现,则声明依存关系。

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

+0

我在主题探索过程中注意到叠加功能,但我不确定是否需要这种行为。感谢您的回答,我已经调查了更多关于叠加层的内容,现在我发现合并功能是需要的。谢谢 – 2011-06-20 09:51:04