想要成为Java架构师不容放过的知识—Maven的版本发布
今天動(dòng)力節(jié)點(diǎn)Java學(xué)院給大家?guī)?lái)Java架構(gòu)師必學(xué)知識(shí)點(diǎn),Maven的版本發(fā)布。
1. RELEASE的說(shuō)明
1.1 snapshot與release的區(qū)別
大多數(shù)java開(kāi)發(fā)的小伙伴都用過(guò)maven來(lái)對(duì)包進(jìn)行管理。在自己寫項(xiàng)目的過(guò)程中,對(duì)自己的項(xiàng)目也會(huì)進(jìn)行g(shù)roupdId,artifactId,version的配置。下面我們來(lái)對(duì)著3個(gè)配置進(jìn)行簡(jiǎn)單說(shuō)明。
一般,我們?cè)趧傞_(kāi)一個(gè)項(xiàng)目以后會(huì)將version定義為1.0-SNAPSHOT。snapshot單詞從字面意思來(lái)說(shuō),是快照、照相的意思。為什么我們新的項(xiàng)目要使用SNAPSHOT呢?而不是我們引入的那些公共包的.RELEASE或者只有版本號(hào)什么都不帶呢?這兩個(gè)又有什么區(qū)別呢?聽(tīng)我慢慢道來(lái): 一個(gè)項(xiàng)目在未上線發(fā)布之前會(huì)在測(cè)試環(huán)境或者開(kāi)發(fā)環(huán)境中進(jìn)行測(cè)試和調(diào)整,也有可能有需求變更和重構(gòu)。所以,snapshot說(shuō)明了,這個(gè)包還未固化其自身提供的服務(wù)。在使用帶有snapshot的包的時(shí)候要特別小心。他很可能發(fā)生變化,不知道什么時(shí)候你之前使用的功能就會(huì)被這個(gè)包的維護(hù)人員干掉或者改變了。 而大家使用的類似Spring之類的公共開(kāi)源包都是以RELEASE結(jié)尾的,這說(shuō)明了當(dāng)前這個(gè)版本號(hào)的包會(huì)穩(wěn)定的提供功能服務(wù),不會(huì)發(fā)生任何變化。如果需要變化只能通過(guò)修改版本號(hào)。
1.2 release的必要性
當(dāng)我們的項(xiàng)目達(dá)到了當(dāng)前的目標(biāo),在經(jīng)過(guò)檢測(cè)后不需要改變。這時(shí)我們就需要將SNAPSHOT版本打包成RELEASE版本。只有這樣,使用這個(gè)包的用戶才能放心的將這個(gè)版本的包放入自己的項(xiàng)目中使用。并且,不會(huì)擔(dān)心這個(gè)功能包提供的功能會(huì)隨時(shí)發(fā)生改變。 接下來(lái)我們就學(xué)習(xí)如何將在git中管理的功能包從snapshot打包成為release版本
2. scm的配置
scm是mvn為我們提供的,對(duì)版本管理軟件進(jìn)行管理和操作的插件。由于本指南只講解打包過(guò)程,不會(huì)詳細(xì)講解本工具的具體概念和使用方式。
3.maven-release-plugin的配置
4.release的操作流程
4.1 第一步release:prepare
這條命令主要是做打包前的準(zhǔn)備。
在準(zhǔn)備過(guò)程中還會(huì)run 單元測(cè)試等phase,如果沒(méi)有異常的話可以繼續(xù)最后一步。如果git還沒(méi)有commit或單元測(cè)試失敗會(huì)導(dǎo)致prepare失敗,這時(shí)候你就需要到下面一個(gè)命令了。
4.2 后悔藥release:rollback
如果在準(zhǔn)備階段發(fā)生錯(cuò)誤,或者需要修改某些地方的話。就需要到這個(gè)命令了,這個(gè)命令執(zhí)行以后會(huì)做以下這些事
4.3 最后一步release:perform
如果確認(rèn)無(wú)誤了以后,就可以執(zhí)行perform命令了。這個(gè)命令干了以下這些事:
恭喜,你已經(jīng)把你的1.0-SNAPSHOT成功的打包成1.0的release版本了。同時(shí)你會(huì)發(fā)現(xiàn)你的pom.xml文件會(huì)自動(dòng)的變成1.1-SNAPSHOT版本。雖然這一系列操作都可以通過(guò)手動(dòng)完成。但是有這個(gè)工具的存在,免去了很多步驟。也規(guī)范了流程,何樂(lè)而不為呢。
?
動(dòng)力節(jié)點(diǎn)Java架構(gòu)師班深度剖析Java底層原理,熱門技術(shù)深入探討,前沿技術(shù)深入解讀,大項(xiàng)目實(shí)戰(zhàn)重構(gòu),從0到1做架構(gòu),從全局思維出發(fā),帶你把控大型項(xiàng)目中別人忽略的重要細(xì)節(jié)節(jié)點(diǎn),站在巨人肩膀上學(xué)習(xí)架構(gòu)師,帶你領(lǐng)會(huì)架構(gòu)師不一樣的視野
總結(jié)
以上是生活随笔為你收集整理的想要成为Java架构师不容放过的知识—Maven的版本发布的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Java程序员时刻铭记的Git常用命令
- 下一篇: Git 提交规范-Java程序员收藏必备