考慮:多模塊Maven項目什麼是更新多模塊Maven項目模塊版本的最佳stategy
任務:更新版本後,每個版本
我看到兩種不同的策略:
策略1 - 整個更新:儘管所有模塊的更新版本,在那裏更新或不
策略2 - 簡約更新:只更新版本那些實際上影響
模塊,假設我們有以下項目結構:
root
---dao
---domain
---web
---site1
---site2
---processors
---processor1
---processor1Service
---processor1Util
---processor1Tests
---processor2
---processor2Service
---processor2Util
---processor2Tests
---simulators
---simulator1
---simulator1Service
---simulator1Util
---simulator1Tests
---simulator2
---simulator2Service
---simulator2Util
---simulator2Tests
---etc
所有父POM具有包裝類型 - 聚甲醛。所有最終模塊都具有資源生成類型 - jar,war,sar等。 根pom包含dependencyManagement其中列出所有子模塊的部分。
策略1:
- 發佈經理RM(或任何人)合併從 '功能' 分支(S)
- 所有的持續集成的東西正在發生的更新(讓他們沒事)
- RM調用mvn版本:versionUpdate -DsetVersion = 1。2根
- 做
策略2:
RM合併從 '功能' 分支(S)
所有的持續集成的東西正在發生的更新(讓他們OK)
- RM檢查使用顛覆工具(git,svn,whatever)實際受到影響的模塊
- RM遞增受影響的模塊的版本手動
- 完成
策略1:
益:
- 來自人沒有手動輸入(除版本號碼也許)
- POM配置是微不足道的並且均勻地,可僅在根POM使用dependencyManagement部
- 所有模塊作爲結果的單個版本不存在 模塊版本
- 無需依賴於外部工具動物園處理該必須檢查 實際更新的位置(甚至更糟糕 - 取決於RM注意力)
- 開發人員不限制他們的模塊進行任何與 無關的更改(fe沒必要害怕,如果你添加新行或 意外地運行在IDE自動格式化工具)
缺點:
- 將被更新的實際上不是模塊的版本 影響 - 結果可能有問題的硬盤空間
策略2:
個好處:
- 將被更新,實際已更新
缺點模塊的版本:
- 動物園的版本。 dao_1.2取決於domain_1.52,都取決於 etc_1。639模塊
- 手動輸入
- 從外部工具的依賴是必須檢查更新,實際
請分享你的意見。如何在大型項目中處理此問題,例如springframework
謝謝你的答案被跟蹤。爲了統計目的,您能否告訴我您的項目中有多少個模塊?您是否嘗試使用策略2並對其感到失望或者您始終使用#1 – 2015-02-08 08:58:22
在工作中,我們使用的是OSGI架構,因此每個jar /模塊都會因OSGI本質而暴露他們自己的版本。 因此,無論何時升級/修復ocurrs只需要一個可部署的jar /模塊來更新而不是所有的項目。但是在以前的J2EE環境經驗中,我們將所有可部署/ jar模塊都升級到一個。 您應該根據您的「可部署單元」選擇一種策略。 在OSGI中,可部署單元是一個jar,所以你應該爲每個模塊尋找一個獨特的版本。在J2ee環境中,因爲可部署單元是一場戰爭。它並不介意在一個環境中升級所有的依賴關係 – 2015-02-08 12:12:11