2011-06-16 69 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