2010-03-26 138 views

回答

1

maven Cargo插件可以merge WAR files但我從來沒有在測試環境之外使用它(我完全控制了我想合併的東西)。

對於更簡單的場景,您可以使用overlays

但這些解決方案都不會奇蹟般地解決衝突。你必須做一些選擇。

+0

以某種方式工作... – Roman 2010-05-02 08:40:10

3

並非如此簡單。

基本的問題是每個WAR都是它自己的容器內的命名空間,所以如果WAR A覆蓋了WAR B中的某些東西(index.jsp就是一個很好的例子),那麼簡單地將它們混合在一起可能容易產生衝突。

謹慎的做法是取出每個WAR並將它們放入新WAR的子樹中,但即使如此,仍然需要解決「全局」工件,特別是web.xml的內容,而且還包含像「每個WAR一個」一樣的屬性文件,例如log4j.properties。最後,一個可移植的WAR不會「硬編碼」它是WAR鏈接的名稱,而是依賴於從請求中獲取上下文路徑。但是,如果您在主WAR下合併了兩個WAR,則上下文路徑僅適用於應用程序的根目錄,而不是每個WAR的特定子目錄。因此,您需要搜索所有這些引用,或者引用路徑被硬編碼的地方,並更正它們。

因此,真的沒有自動合併WAR的方法。