2013-11-28 55 views
0

我想打包兩個WAR,其中包含互斥的低級實現。我嘗試過不同的方法,並且我感到嘮叨的感覺,我很想念那些明顯的東西。包2不同子模塊的WAR

我的項目結構被構造在子模塊:

app 
    foo 
    foo-highlevel 
    foo-lowlevel1 
    foo-lowlevel2 
    bar 
    webapp 

爲WAR 1所述的依賴關係應是:

webapp 
\-foo-highlevel 
    \-foo-lowlevel1 
\-bar 
    \-foo-highlevel 

,並相應地爲WAR 2:

webapp 
\-foo-highlevel 
    \-foo-lowlevel2 
\-bar 
    \-foo-highlevel 

即是,我想要

  • 隱藏吧foo的高級實現需要低級別實現
  • 僅封裝一個低級實現。 (注意:低級別的實現包括彈簧豆注入到foo-highlevel)

我該如何實現將兩個WAR包裝到相應的位置?

途徑我曾嘗試:

  • 概況:但他們的目的不是爲同一POM創建不同的文物,它沒有工作了反正
  • 多金屬氧酸鹽:我可以定義兩個多金屬氧酸鹽爲Web應用程序分別具有對lowlevel1或lowlevel2的依賴關係。但到目前爲止,在web應用程序的POM中,對foo-highlevel的依賴性已經足夠,所以我想知道這是否是確定低級依賴關係的正確位置。

途徑我考慮嘗試:

  • 使用Maven的組裝插件:但這是這個工作的工具?
  • 使用戰爭覆蓋:也許這是正確的工具?

感謝您的想法

回答

1

拇指Maven的規則是「每一個POM神器」,所以我覺得你的「多金屬氧酸鹽」的做法是要走的路。您可以將webapp保留爲定義基本依賴項的父集合器項目,然後使用2個poms來構建從該頂級pom繼承的war,並指定低級別依賴項。

+0

謝謝。我在一個包含webapp-lowlevel1和webapp-lowlevel2以及webapp-common(用於web.xml和共享源代碼)的集合webapp pom中重構了webapp。 – user1627943