欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
一文學(xué)會(huì )Maven的版本發(fā)布

來(lái)源:http://t.cn/EJ4Wowq


1. RELEASE的說(shuō)明

1.1 snapshot與release的區別

大多數java開(kāi)發(fā)的小伙伴都用過(guò)maven來(lái)對包進(jìn)行管理。在自己寫(xiě)項目的過(guò)程中,對自己的項目也會(huì )進(jìn)行g(shù)roupdId,artifactId,version的配置。下面我們來(lái)對著(zhù)3個(gè)配置進(jìn)行簡(jiǎn)單說(shuō)明。

  1. groupId:顧名思義,這個(gè)里面包含的是本項目屬于哪一個(gè)group(即組織或公司)。一般我們會(huì )用公司或者自己的前幾級包名來(lái)進(jìn)行定義。

  2. artifactId:這個(gè)值定義的是本項目的名字。

  3. version:這個(gè)就是我們今天講解的關(guān)鍵了。這個(gè)項目在maven進(jìn)行發(fā)布以后的版本號。

一般,我們在剛開(kāi)一個(gè)項目以后會(huì )將version定義為1.0-SNAPSHOT。snapshot單詞從字面意思來(lái)說(shuō),是快照、照相的意思。為什么我們新的項目要使用SNAPSHOT呢?而不是我們引入的那些公共包的.RELEASE或者只有版本號什么都不帶呢?這兩個(gè)又有什么區別呢?聽(tīng)我慢慢道來(lái):一個(gè)項目在未上線(xiàn)發(fā)布之前會(huì )在測試環(huán)境或者開(kāi)發(fā)環(huán)境中進(jìn)行測試和調整,也有可能有需求變更和重構。所以,snapshot說(shuō)明了,這個(gè)包還未固化其自身提供的服務(wù)。在使用帶有snapshot的包的時(shí)候要特別小心。他很可能發(fā)生變化,不知道什么時(shí)候你之前使用的功能就會(huì )被這個(gè)包的維護人員干掉或者改變了。而大家使用的類(lèi)似Spring之類(lèi)的公共開(kāi)源包都是以RELEASE結尾的,這說(shuō)明了當前這個(gè)版本號的包會(huì )穩定的提供功能服務(wù),不會(huì )發(fā)生任何變化。如果需要變化只能通過(guò)修改版本號。

1.2 release的必要性

當我們的項目達到了當前的目標,在經(jīng)過(guò)檢測后不需要改變。這時(shí)我們就需要將SNAPSHOT版本打包成RELEASE版本。只有這樣,使用這個(gè)包的用戶(hù)才能放心的將這個(gè)版本的包放入自己的項目中使用。并且,不會(huì )擔心這個(gè)功能包提供的功能會(huì )隨時(shí)發(fā)生改變。接下來(lái)我們就學(xué)習如何將在git中管理的功能包從snapshot打包成為release版本

2. scm的配置

scm是mvn為我們提供的,對版本管理軟件進(jìn)行管理和操作的插件。由于本指南只講解打包過(guò)程,不會(huì )詳細講解本工具的具體概念和使用方式。

  1. <project>

  2. <scm>

  3. <!--release包需要放入的nexus或者其他maven release包的倉庫url地址-->

  4. <url>http://xxxx/nexus/content/repositories/releases/</url>

  5. <!--connection, developerConnection: 都是連接字符串,其中后者是具有write權限的scm連接 -->

  6. <!--需要打包項目的git地址-->

  7. <developerConnection>scm:git:http://xxxx/c-h5/portal-common-base.git</developerConnection>

  8. <!--需要打包項目的git地址-->

  9. <connection>scm:git:http://xxx/c-h5/portal-common-base.git</connection>

  10. <!---->

  11. <tag>HEAD</tag>

  12. </scm>

  13. </project>

  14. 復制代碼

3.maven-release-plugin的配置

  1. <build>

  2. <plugins>

  3. <!-- 發(fā)布插件 -->

  4. <plugin>

  5. <groupId>org.apache.maven.plugins</groupId>

  6. <artifactId>maven-release-plugin</artifactId>

  7. <version>2.5.3</version>

  8. <configuration>

  9. <!--git用戶(hù)名-->

  10. <username>xxxxx@shishike.com</username>

  11. <!--git密碼-->

  12. <password>xxxx</password>

  13. <!--mvn目標指令-->

  14. <goals>-f pom.xml deploy</goals>

  15. </configuration>

  16. </plugin>

  17. </plugins>

  18. </build>

  19. 復制代碼

4.release的操作流程

4.1 第一步release:prepare

這條命令主要是做打包前的準備。

  1. 輸入對應的release需要打包的版本等信息,如果不輸入有默認的內容

  2. 將需要記錄和準備的內容緩存到pom.xml目錄下的release.properties文件中

  3. 在本地和遠程庫的GIT中打上對應版本的tag

在準備過(guò)程中還會(huì )run 單元測試等phase,如果沒(méi)有異常的話(huà)可以繼續最后一步。如果git還沒(méi)有commit或單元測試失敗會(huì )導致prepare失敗,這時(shí)候你就需要到下面一個(gè)命令了。

4.2 后悔藥release:rollback

如果在準備階段發(fā)生錯誤,或者需要修改某些地方的話(huà)。就需要到這個(gè)命令了,這個(gè)命令執行以后會(huì )做以下這些事

  1. 刪除線(xiàn)上git庫tag,但是本地庫tag沒(méi)有被刪除,需要手動(dòng)使用git tag -d XXX進(jìn)行刪除。如果不將本地庫中的tag刪除將會(huì )導致prepare失敗。

  2. 刪除之前緩存在pom.xml統一目錄下的配置

4.3 最后一步release:perform

如果確認無(wú)誤了以后,就可以執行perform命令了。這個(gè)命令干了以下這些事:

  1. 驗證代碼合法性

  2. 將你之前的1.0-SNAPSHOT改為1.1-SNAPSHOT

  3. 將1.0版本deploy至scm配置的nexus release庫中

  4. 將代碼source。jar版本 javacode。jar打包上傳至nexus庫

恭喜,你已經(jīng)把你的1.0-SNAPSHOT成功的打包成1.0的release版本了。同時(shí)你會(huì )發(fā)現你的pom.xml文件會(huì )自動(dòng)的變成1.1-SNAPSHOT版本。雖然這一系列操作都可以通過(guò)手動(dòng)完成。但是有這個(gè)工具的存在,免去了很多步驟。也規范了流程,何樂(lè )而不為呢。


本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
發(fā)布構件到Maven中央倉庫
Maven結合svn進(jìn)行版本管理
Maven最佳實(shí)踐:版本管理
Nexus搭建Maven私服(三) 版本控制
基于Maven和SVN的項目版本管理
一份可以發(fā)布jar包到MAVEN中央倉庫的POM
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久