概覽
做好版本迭代有助于項(xiàng)目管理 。本文將講述個(gè)人相關(guān)理解與實(shí)踐,包括 snapshot 和 realease 版本的區(qū)別、版本號(hào)演變流程型宝、maven 版本規(guī)則。
為什么用 SNAPSHOT ?
SNAPSHOT 即為快照版本絮爷,它與 RELEASE 版本對(duì)應(yīng)趴酣,只應(yīng)在開發(fā)過(guò)程中存在。舉例:A 項(xiàng)目依賴于項(xiàng)目 B坑夯,使用快照版本后岖寞,B 每次改動(dòng)后打包都會(huì)打上時(shí)間戳,A 編譯時(shí)會(huì)檢查B的時(shí)間戳柜蜈,如果晚于本地倉(cāng)庫(kù) B 的時(shí)間戳仗谆,那么就會(huì)進(jìn)行更新(根據(jù)策略),快照省去了溝通成本淑履、版本號(hào)成本隶垮。
實(shí)際操作中,B 改動(dòng)完畢秘噪,deploy 到私服狸吞,A 運(yùn)行 maven reimport 命令拉取,如未拉取成功指煎,可檢查 maven 快照更新策略(默認(rèn)一天更新一次)或通過(guò)命令強(qiáng)制更新( mvn clean install -U )蹋偏。
版本號(hào)演變流程(1.0-SNAPSHOT到1.0到1.1-SNAPSHOT)
SNAPSHOT 是快照的意思,項(xiàng)目到一個(gè)階段后贯要,就需要發(fā)布一個(gè)正式的版本(RELEASE版本)暖侨,一次正式的發(fā)布需要經(jīng)歷以下流程:
在 trunk(主干)中椭住,更新 pom 文件從1.0-SNAPSHOT到1.0
對(duì)1.0打個(gè) tag
針對(duì) tag 進(jìn)行 mvn deploy崇渗,發(fā)布正式版本
更新trunk從1.0到1.1-SNAPSHOT(用于后續(xù)功能開發(fā))
Maven 版本規(guī)則
前面講述了 SNAPSHOT 和 RELEASE 版本的區(qū)別,現(xiàn)在看一下京郑,為什么要有1.0宅广,1.1,1.1.1這樣的版本些举,其中的規(guī)則是什么跟狱。
Maven 主要是這樣定義規(guī)則的:<主版本>.<次版本>.<增量版本>
舉例1.2.3,主版本為1户魏,次版本為2驶臊,增量版本為3挪挤。
主版本號(hào)的修改一般代表了項(xiàng)目的重大架構(gòu)變更,比如近期發(fā)布的 Nacos 2.0关翎,相較于1.x版本扛门,升級(jí)了通信協(xié)議、一致性模型纵寝、架構(gòu)分層和抽象论寨。次版本號(hào)一般代表了一些功能的增加和變化。增量版本一般是一些小的 bug fix爽茴,不會(huì)有重大的功能變化葬凳。
為什么要使用增量版本,實(shí)際中我們發(fā)布了一個(gè)正式版之后室奏,會(huì)隨之開發(fā)新版本火焰。例,auth-1.1發(fā)布后窍奋,著手開發(fā) auth-1.2荐健。由于
auth-1.2有新功能的添加以及變化,在發(fā)布測(cè)試前琳袄,他是不穩(wěn)定的江场,而 auth-1.1是一個(gè)比較穩(wěn)定的版本。現(xiàn)出現(xiàn)以下問題窖逗,在1.1正式版中發(fā)現(xiàn)了一些 bug(當(dāng)然1.2中也存在)址否,為了能夠盡快修復(fù)bug并發(fā)布穩(wěn)定版本,我們基于1.1開啟一個(gè)1.1.1分支碎紊,在這個(gè)分支中修復(fù) bug佑附,并快速發(fā)布。這樣既保證了版本的穩(wěn)定仗考,也能夠快速修復(fù) bug音同,同時(shí)1.2的開發(fā)進(jìn)度不會(huì)受影響。修復(fù)完1.1.1中的 bug 后秃嗜,需要 merge 到1.2分支中权均。