2011-07-13 69 views
2

我有一個多模塊maven項目。它有5個模塊,其中2個是Web項目。父POM和maven目標只爲戰爭項目

我想定製我的插件只在戰爭項目中運行。我的意思是在父母級別,我想觸發我的目標,只有我的戰爭項目會受到影響。有沒有辦法呢?

由於這個原因,我不會在我的戰爭項目pom中有重複的配置。

感謝

回答

2

你可以建立一個戰爭父POM(其中你的戰爭項目繼承)和一般父POM(其中每個人都在繼承)。

 general parent 
     / \ \ 
    war parent  \ \ 
    /\   \ \ 
war1 war2 other1 other2 

對於建築,你可能有一個單獨的生成pom,具有上述所有模塊。

HTH

+0

+1如果您需要爲所有WAR模塊*跨項目*擁有父POM,那麼您註定要失敗。配置文件可能有一些技巧,但它不能像繼承一樣多。 –

0

我面臨同樣的問題多次,我來,最好的方案是這樣的結論:

cool-master 
|-+ parents 
| |- cool-parent 
| |- cool-parent-web 
| 
|- module1 
|- module2 
|- module3 
|- module-web1 
|- module-web2 

在上述例子中有三種類型的模塊:

  • 父POM-S(cool-parentcool-parent-web

  • 非web APS(延伸cool-parent

  • web應用(延伸cool-parent-web

在父母可以定義設置,這是特異性針對不同類型的模塊。例如在cool-parent中定義非webapp相關的東西,在cool-parent-web中可以有所有的花式東西,如maven-war-plugin,jetty-maven-plugin等。我通常有cool-parent-web擴展cool-parent以避免重複依賴關係,插件設置和等等

cool-parent-web定義一個<pluginManagement/>部分,併爲你的插件設置所有的東西,然後在你的web模塊中使用它們。