2013-04-30 27 views
1

我想知道是否有最好的方法來分組maven項目。多模塊maven項目的最佳結構

如果我有超過1個pom項目,設置它們的最佳方法是什麼?

Solution 1: 
groupid:parent:version (pom) 
    groupid.parent:child:version (jar) 
    groupid.parent:subproject:version (pom) 
     groupid.parent.subproject:childOne:version (jar) 
     groupid.parent.subproject:childTwo:version (jar) 
     groupid.parent.subproject:childThree:version (jar) 

Solution 2: 
groupid:parent:version (pom) 
    groupid:parent-child:version (jar) 
    groupid:parent-subproject:version (pom) 
     groupid:parent-subproject-childOne:version (jar) 
     groupid:parent-subproject-childTwo:version (jar) 
     groupid:parent-subproject-childThree:version (jar) 

其他選項?!?

+0

這在很大程度上取決於你的需求。一些標準是:模塊是獨立發佈還是一起發佈?子模塊組是否一起發佈?我會說沒有適用於所有項目的「最佳」結構。也許你可以更具體一些你的標準是什麼? – ilikeorangutans 2013-05-01 21:10:39

+0

我在尋找一個通用的解決方案。對於所有情況。 – 2013-05-06 15:43:50

回答

1

我對解決方案1 ​​中描述的模塊組織優先。通過這種方法,您可能會遇到(或預料到)一些命名衝突...這些衝突都被大多數Maven插件禮貌地緩解。例如:

  • 你有一個全球圖書館在名爲some.groupId Maven的生態系統:服務:1.0.0
  • 然後你的Maven多模塊項目之一,人工製品裏面名爲另一.groupId:服務:1.0.0

現在,假設你有一個既取決於上述提到服務文物的Maven的網絡應用模塊。當maven-war-plugin將依賴關係複製到WEB-INF/lib目錄中時,它足夠聰明地發現服務 jar文件名衝突並重命名每個jar以包含它們的groupId。

我知道這是一個很多額外的信息,但有些人都沒有意識到這一點的Maven戰爭情報的......

+0

是的!這是我的常見問題之一。 TKS – 2013-05-06 15:42:05