項目中如何使用Maven進行版本管理

Maven 是一個項目管理工具,每個項目deploy到repository中以後,都有一個座標,座標中就包含一個版本,那個版本將是我們進行版本控制管理的一個重點。

一個產品實際可能包含10幾個模塊,模塊間會有依賴關係,所以在項目管理中經常聽到這種抱怨:

“測試環境又發不了券了?”

“是誰又把我的jar包覆蓋了?”

“這個功能測試環境都測試好了,到了預生產怎麼又不行了?”

“jar包又被哪個傻X覆蓋了?”

這些基本上都是因爲實際研發過程中版本管理混亂或者幾乎沒有版本管理造成的,有的是直接就一個版本用到底,所有環境都用一個版本,經常是還沒上線的代碼deploy到repository中,導致線上其他模塊發佈出現了問題。

大家可以想象一下,一個項目中可能有10幾個模塊,每個模塊都有依賴的模塊,無論是哪套環境,任何一次deploy都可能影響到其他的環境,這是多麼恐怖的事情。所以,“穩定大於一切”,“應該給研發人員和測試人員應有的安全感!”

如何在maven中進行這個版本的控制呢?如何解決這些問題呢?

1.版本統一進行定義管理

定義一個統一的父pom項目,該項目只進行版本的管理,其他所有的模塊的版本都在父pom中配置管理,一個模塊依賴其他模塊時統一繼承父pom中的版本。

定義好每個迭代週期的版本後,統一修改父pom的版本,父pom中定義好各個環境的profile,不同的環境使用不同的profile。

每定義一個版本時,需要同時定義各個模塊的版本號,定義好以後,更新父pom的版本號,需要使用模塊新特性的就更新父pom的版本,這樣就保證版本能夠統一進行管理。如下圖父pom項目中1.0.3版本的對應的user是1.0.2版本,order是1.0.1版本,pay是1.0.3版本。如果下一次要進行新功能開發,user修改版本爲1.1.0,其他模塊接口不變,那麼父pom就需要進行版本升級爲1.1.0,pay依賴user模塊1.1.0版本就需要更新父pom的版本號。

父pom項目統一由管理員進行控制管理,每次版本修改都由管理進行發佈管理。

2.支持多套環境的版本切換

maven倉庫支持snapshot版本和release版本,研發環境和測試環境可以使用snapshot版本進行發佈,研發環境和測試環境屬於高頻deploy執行的,所以保證不更新版本號每次deploy後maven打包時會更新依賴,正式環境使用relase版本,如果需要升級就更新版本號。

3.支持多版本同時存在

每個項目可以發佈多個版本,不同的版本可以被不同的模塊依賴,能夠各取所需,比如,user模塊有1.0.1-release版本和1.0.3-release版本,這兩個版本可以被不同的模塊引用,只有需要1.0.3-release新特性的模塊纔對應更新父pom的版本。

以上就是我在項目管理中實際使用maven進行版本控制的經驗。
歡迎大家關注我的微信公衆號(xtech100),一切討論切磋!
這是我在百家號的原文地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章