摘要:每定義一個版本時,需要同時定義各個模塊的版本號,定義好以后,更新父的版本號,需要使用模塊新特性的就更新父的版本,這樣就保證版本能夠統(tǒng)一進行管理。
Maven 是一個項目管理工具,每個項目deploy到repository中以后,都有一個坐標,坐標中就包含一個版本,那個版本將是我們進行版本控制管理的一個重點。
一個產(chǎn)品實際可能包含10幾個模塊,模塊間會有依賴關系,所以在項目管理中經(jīng)常聽到這種抱怨:
“測試環(huán)境又發(fā)不了券了?”
“是誰又把我的jar包覆蓋了?”
“這個功能測試環(huán)境都測試好了,到了預生產(chǎn)怎么又不行了?”
“jar包又被哪個傻X覆蓋了?”
這些基本上都是因為實際研發(fā)過程中版本管理混亂或者幾乎沒有版本管理造成的,有的是直接就一個版本用到底,所有環(huán)境都用一個版本,經(jīng)常是還沒上線的代碼deploy到repository中,導致線上其他模塊發(fā)布出現(xiàn)了問題。
大家可以想象一下,一個項目中可能有10幾個模塊,每個模塊都有依賴的模塊,無論是哪套環(huán)境,任何一次deploy都可能影響到其他的環(huán)境,這是多么恐怖的事情。所以,“穩(wěn)定大于一切”,“應該給研發(fā)人員和測試人員應有的安全感!”
如何在maven中進行這個版本的控制呢?如何解決這些問題呢?
1.版本統(tǒng)一進行定義管理定義一個統(tǒng)一的父pom項目,該項目只進行版本的管理,其他所有的模塊的版本都在父pom中配置管理,一個模塊依賴其他模塊時統(tǒng)一繼承父pom中的版本。
定義好每個迭代周期的版本后,統(tǒng)一修改父pom的版本,父pom中定義好各個環(huán)境的profile,不同的環(huán)境使用不同的profile。
每定義一個版本時,需要同時定義各個模塊的版本號,定義好以后,更新父pom的版本號,需要使用模塊新特性的就更新父pom的版本,這樣就保證版本能夠統(tǒng)一進行管理。如下圖父pom項目中1.0.3版本的對應的user是1.0.2版本,order是1.0.1版本,pay是1.0.3版本。如果下一次要進行新功能開發(fā),user修改版本為1.1.0,其他模塊接口不變,那么父pom就需要進行版本升級為1.1.0,pay依賴user模塊1.1.0版本就需要更新父pom的版本號。
父pom項目統(tǒng)一由管理員進行控制管理,每次版本修改都由管理進行發(fā)布管理。
2.支持多套環(huán)境的版本切換maven倉庫支持snapshot版本和release版本,研發(fā)環(huán)境和測試環(huán)境可以使用snapshot版本進行發(fā)布,研發(fā)環(huán)境和測試環(huán)境屬于高頻deploy執(zhí)行的,所以保證不更新版本號每次deploy后maven打包時會更新依賴,正式環(huán)境使用relase版本,如果需要升級就更新版本號。
3.支持多版本同時存在每個項目可以發(fā)布多個版本,不同的版本可以被不同的模塊依賴,能夠各取所需,比如,user模塊有1.0.1-release版本和1.0.3-release版本,這兩個版本可以被不同的模塊引用,只有需要1.0.3-release新特性的模塊才對應更新父pom的版本。
以上就是我在項目管理中實際使用maven進行版本控制的經(jīng)驗。
歡迎大家關注我的微信公眾號(xtech100),一切討論切磋!
這是我在百家號的原文地址
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/72305.html
摘要:是一個項目管理工具,它包含了一個項目對象模型,一組標準集合,一個項目生命周期,一個依賴管理系統(tǒng),和用來運行定義在生命周期階段中插件目標的邏輯。此外,能夠很方便的幫你管理項目報告,生成站點,管理文件,等等。 在進行實際項目開發(fā)時往往不是由一個人去完成一整個項目,而是分模塊進行完成最后將所有項目進行聚合,那么就可以用到maven和svn。MAVEN是用來管理項目的,我認為它最大的優(yōu)勢就在于...
摘要:軟件項目的管理就會變得簡單很多。比如說的驅(qū)動程序,,在是獲取不到的,就需要手工上傳到里是倉庫組,在里沒有這個概念,是特有的。 什么是Maven Maven是一個采用純Java編寫的開源項目管理工具, Maven采用了一種被稱之為Project Object Model (POM)概念來管理項目,所有的項目配置信息都被定義在一個叫做POM.xml的文件中.. Maven是一款跨平臺的項目...
摘要:引言有過一定應用開發(fā)的小伙伴一定有過使用框架搭建項目的經(jīng)歷。由于的面向項目的方法,許多項目發(fā)文時使用,而且公司項目采用的比例在持續(xù)增長。 引言 有過一定web應用開發(fā)的小伙伴一定有過使用框架搭建web項目的經(jīng)歷。的確,使用一些框架確實給我們的工作帶來了很大的方便使得開發(fā)人員把更多的時間專注于業(yè)務的開發(fā)而把業(yè)務的邏輯實現(xiàn)交給了框架來實現(xiàn),而搭建框架時比較煩的就是引入一系列jar包,因為我...
閱讀 3064·2021-10-12 10:20
閱讀 2809·2021-09-27 13:56
閱讀 790·2021-09-27 13:36
閱讀 1424·2021-09-26 09:46
閱讀 2417·2019-08-30 14:02
閱讀 2685·2019-08-28 18:14
閱讀 1258·2019-08-26 10:32
閱讀 1700·2019-08-23 18:25