這個系列有四篇文章,自動部署分成了2篇:
- jenkins+git+maven持續(xù)集成(一):主要介紹Centos7下jenkins的安裝
- jenkins+git+maven持續(xù)集成(二):主要介紹下jenkins怎么集成git+maven進(jìn)行自動構(gòu)建
- jenkins+git+maven持續(xù)集成(三):主要介紹下jenkins怎么集成進(jìn)行自動部署(發(fā)布到maven私有庫)
- jenkins+git+maven持續(xù)集成(四):主要介紹下jenkins怎么集成進(jìn)行自動部署(通過SSH部署到服務(wù)器)
上篇介紹了怎么用maven+git進(jìn)行自動構(gòu)建,既然都能自動構(gòu)建了,那么自動部署肯定是少不了的。
構(gòu)建后操作
回到前面的jenkinsDemo任務(wù)編輯頁面,在構(gòu)建的下面能看到“構(gòu)建后操作”:

我們點(diǎn)開“增加構(gòu)建后操作步驟”:

1. 發(fā)布包到maven私有庫
其中有一個項(xiàng)目中用到比較多的“Deploy artifacts to Maven repository”;這個就是部署到maven倉庫,在實(shí)際項(xiàng)目開發(fā)中,大部分時候我們只需要關(guān)注自己的業(yè)務(wù)或者調(diào)用其他項(xiàng)目的接口,至于怎么實(shí)現(xiàn)的我們不用太去關(guān)注,而且可能都沒有權(quán)限去看相關(guān)代碼,但是我們還是需要用到相關(guān)的jar。那么怎么辦呢,其實(shí)就和我們使用maven一樣,只是需要公司搭建自己的私有庫,然后將自己開發(fā)的接口或公共的jar提交上去,這時在構(gòu)建完添加“Deploy artifacts to Maven repository”就很有用了,這個操作會幫助我們直接將構(gòu)建好的pom或者jar包發(fā)布到Maven私有庫去。
1.1 手動發(fā)布包到maven私有庫
這里簡單地說下maven的setting.xml的配置:
在<servers>中添加release和snapshot對應(yīng)的server信息:

然后在<mirrors>中添加私服的鏡像(這里的賬號密碼需要在私服中創(chuàng)建并設(shè)置有deploy的權(quán)限):

最后在<profiles>中添加release和snapshot對應(yīng)的地址信息:

有多個profile的時候需要指定一個使用的:

關(guān)于私服的搭建就不在這里描述了,可以參考我以前寫的Window下搭建Nexus3私服;linux下的操作也大同小異,不過是tar包,解壓后運(yùn)行對應(yīng)的shell就可以了。
maven的設(shè)置到這里就結(jié)束了,不過對應(yīng)的工程也需要做相關(guān)的修改。還是拿我們做集成的spring-cloud工程為例,在根目錄下pom中添加<distributionManagement>:

注意這里的repository id要和maven setting.xml中設(shè)置的對應(yīng);然后一般java項(xiàng)目中會有個頂級的pom配置工程,所有其他的java maven工程都集成頂級的pom,所以一般只要在頂級的pom配置工程中添加一次就可以了。
這里簡單地做下測試是否能正常發(fā)布,先看下私有庫對應(yīng)的包(這里我發(fā)布過一次了):

我們在根目錄運(yùn)行:
mvn deploy
可以看到發(fā)布成功了,而且還有相關(guān)的報信息(這里就只截取最后一段信息):

我們回到私有庫查看是否有剛才發(fā)布的包:

可以看到確實(shí)是剛才通過運(yùn)行命令發(fā)布的包,其他的包信息也能對上,這里就不一一比對了。到這里說明具備了發(fā)布包到私有庫的能力,接下看下Jenkins中怎么自動發(fā)布。
1.2 Jenkins自動發(fā)布包到maven私有庫
回到“增加構(gòu)建后操作”,選擇“Deploy artifacts to Maven repository”,然后點(diǎn)開“高級”;這里我們是snapshot版本的,添加對應(yīng)的信息:

保存后,回到任務(wù)頁面點(diǎn)擊“立即構(gòu)建”,進(jìn)入控制臺查看:

可以看到自動構(gòu)建完成后,進(jìn)行了deploy相關(guān)的操作。我們再回到maven私有庫檢查是否上傳成功了:

包名是對應(yīng)的,到這里說明自動發(fā)布到maven私有庫成功了。
下一篇會介紹通過SSH自動部署到服務(wù)器上。