Maven版本管理
轉(zhuǎn)載于:https://www.cnblogs.com/myitroad/p/6131229.html
?
一、理想的發(fā)布版本,在項目構(gòu)建時需要滿足以下條件:
1、所有自動化測試應(yīng)當(dāng)全部通過;
2、項目沒有配置任何快照版本的依賴;
3、項目沒有任何快照版本的插件;
4、項目所包含的代碼已經(jīng)全部提交到版本控制系統(tǒng)中;
?
因此,將項目的快照版本更新至發(fā)布版本之后,應(yīng)當(dāng)再執(zhí)行一次Maven構(gòu)建,以確保項目狀態(tài)是健康的。然后將這一變更提交到版本控制系統(tǒng)的主干中。接著再為當(dāng)前主干的狀態(tài)打上標(biāo)簽。以Subversion為例,這兒個步驟對應(yīng)的命令如下:
?
二、版本號的定義
Maven的版本號定義約定是這樣的:
主版本:表示項目的重大架構(gòu)變更;
次版本:表示較大范圍的功能增加和變化;
增量版本:表示重大Bug的修復(fù);
里程碑版本:表示一個版本的里程碑。
?
當(dāng)然,不是每個版本號都必須擁有這四個部分,但是前兩個版本一般都有。
?
三、主干、標(biāo)簽和分支
1、主干trunk:項目開發(fā)代碼的主體,是從項目開始直到當(dāng)前都處于活動的狀態(tài)。從這里可以獲得項目最新的源代碼以及幾乎所有的變更歷史。
2、分支branch:從主干的某個點分離出來的代碼拷貝,通常可以在不影響主干的前提下在這里進(jìn)行重大Bug的修復(fù),或者做一些實驗性質(zhì)的開發(fā)。如果分支達(dá)到了預(yù)期的目的,通常發(fā)生在這里的變更會被合井( merge)到主干中。
3、標(biāo)簽tag:用來標(biāo)識主干或者分支的某個點的狀態(tài),以代表項目的某個穩(wěn)定狀態(tài),這通常就是版本發(fā)布時的狀態(tài)。
?
四、自動化版本發(fā)布
當(dāng)熟悉了版本發(fā)布流程之后,就會希望借助工具將這流程自動化。Maven Release plugin就提供了這樣的功能,只要提供一些必要的信息。它就能幫我們完成上述所有版本發(fā)布所涉及的操作。下面介紹如何使用Maven Release plugin發(fā)布項目版本。
Maven Release plugin主要有三個目標(biāo):分別如下:
1、release:prepare——準(zhǔn)備版本發(fā)布
2、release:rollback——回退release:prepare執(zhí)行的操作
3、release:perform——執(zhí)行版本發(fā)布。
?
五、自動化創(chuàng)建分支
在正式發(fā)布版本1.1.0的同時,還可以創(chuàng)建個分支用來修復(fù)將來這個版本可能遇到的重大Bug。這個過程可以手工完成,例如使用svn copy操作將主干代碼復(fù)制到個名為1.1.x的分支中,然后修改分支中的POM文件,升級其版本為1.1.1-SNAPSHOT,這會設(shè)計很多Subversion操作。
使用Maven Release Plugin的branch目標(biāo),能夠幫助我們自動化這些操作:
1、檢查本地有無未提交的代碼;
2、為分支更改POM的版本,例如從1.1.0-SNAPSHORT改變成1.1.1-SNAPSHOT;
3、將POM中的SCM信息更新為分支信息;
4、提交以上更改;
5、將主干代碼復(fù)制到分支中;
6、修改本地代碼使其回到到分之前的版本;
7、提交本地更新。
?
?
六、Maven GPG Plugin
使用GPG,為構(gòu)件提供簽名,以提供更強的安全性。
略。
?
總結(jié)
- 上一篇: Maven(6)--archetype
- 下一篇: Hive--优化参数