Jenkins是用java編寫的開源持續集成工具,目前被國內外各公司普遍使用。本章教你們如何在linux服務器中使用Jenkins自動發佈一個可做爲linux服務發佈的Springboot項目。java
自動構建須要通過以下步驟:從git倉庫下載代碼、使用Gradle進行構建、使用SSH推送到另外一臺linux服務器、項目做爲linux服務啓動。本章將逐條仔細講解。linux
1、得到一臺linux服務器
要在linux下搞持續構建,首先你得先有一臺linux服務器,做爲小白,手頭的機器確定都是windows的,搞個虛擬機安裝對我這種小白簡直是折磨人;這裏使用最簡單的方式得到一臺linux服務器,就是從阿里雲上租一臺。鏡像選擇CentOS7.3 64位。git

2、準備工做
在開始部署持續構建以前,你須要先安裝好必備的軟件,包含jdk、git、Gradle、Jenkins。若是你不熟悉這些軟件怎麼安裝,能夠查看本人以前發佈的教程。傳送門:jdk安裝、git安裝、Gradle安裝、Linux下Jenkins安裝、Docker版本Jenkins的使用。github
另外,你還須要在git倉庫中有一份可做爲服務啓動的springboot代碼。不熟悉的同窗參考以前發佈的教程。傳送門使用github管理標準springboot代碼。spring
3、配置Jenkins使用的JDK
登陸Jenkins進入歡迎頁面,點擊系統管理
。windows

進入管理頁面,點擊Global Tool Configuration
進入全局工具配置頁面。瀏覽器

在全局工具配置頁面,咱們能夠配置JDK、GIT、Gradle。這裏咱們先配置JDK,點擊新增JDK
。springboot

配置好JDK的別名,以及設置JAVA_HOME路徑,按照以前JDK安裝教程的yum安裝方式,JAVA_HOME的路徑應該是/usr/lib/jvm/java-1.8.0
。服務器

點擊Save
,JDK配置完成。ssh
4、在Jenkins配置GIT路徑
剛纔配置好了JDK,如今咱們開始配置GIT。仍是打開全局工具配置頁面,在JDK的配置下面,能夠看到GIT相關的配置。

Name處寫上別名,叫什麼都行,這裏習慣性寫git
;Path to Git executable
這個地方要注意,不是填git文件夾所在路徑,須要填寫git可執行文件的路徑。按照以前教程git安裝的手動下載源碼安裝的方式,此處應該填寫/usr/local/git/bin/git
。
點擊Save
,GIT配置完成。
5、配置Jenkins使用GIT下載代碼
剛纔在Jenkins中配置了git,如今開始使用git來下載代碼。首先,須要在linux上生成一套SSH Key,並將SSH Key和github相關聯。
輸入命令ssh-keygen -t rsa -C "test@163.com"
來生成ssh公私鑰。注意把郵箱替換成本身的郵箱。生成的時候會有輸入框提示 第一次是讓你輸入文件的地址,第二次和第三次是輸出密碼。這裏所有敲回車,使用默認地址,不設置密碼。

如今SSH公私鑰生成好了,輸入命令tail /root/.ssh/id_rsa.pub
來獲取公鑰。

複製公鑰,到github上打開管理頁面關聯上。

ps.這裏生成SSHKey是基於linux安裝jenkins的,若是你使用的是Docker版,參考Docker版本Jenkins的使用這篇文章的最後一章。
如今Jenkins所在機器的SSH Key和github關聯上了,咱們回到Jenkins歡迎頁面,點擊新建
。

在新建任務頁面,輸入任務名,選擇構建一個自由風格的軟件項目
,點擊OK
。

進入任務配置頁面,在源碼管理選擇git。

Repository URL
字段填寫git遠程倉庫地址,你能夠從github上找到。

配置上git遠程倉庫地址後,能夠看見有錯誤信息提示沒有權限,點擊Add按鈕,添加證書。注意Kind
選SSH username with private key
,Private Key
選From the jenkins master ~/.ssh
,點擊Add
。

回到源碼管理頁面,選擇剛纔添加的證書,錯誤信息消失標識配置成功。點擊保存
。

在項目控制檯頁面,點擊馬上構建
,來測試Jenkins是否能夠成功從git倉庫下載代碼。

等待構建執行結束,在服務器進入Jenkins工程目錄/var/lib/jenkins/workspace
。能夠看到目錄下有文件夾demo-jenkins-service
。進入文件夾,能夠看到項目相關代碼。

至此Jenkins使用GIT下載代碼配置成功。
6、配置Jenkins使用Gradle構建代碼
如今咱們已經能夠經過Jenkins使用git下載代碼了,下面須要將代碼構建成項目。這裏咱們使用Gradle工具進行構建。尚未安裝Gradle的同窗能夠參考以前的教程Gradle安裝。
再次進入在全局工具配置頁面,進行Gradle的配置。name
處寫別名,GRADLE_HOME
處填寫Gradle安裝的根目錄,根據以前教程安裝的朋友,這裏填寫/opt/gradle/gradle-3.5
。填寫完成後點擊Save
。

打開任務,進入任務配置頁面,在構建欄目
下,點擊增長構建步驟
,選擇Invoke Gradle script
。

在Gradle腳本頁面,選擇Invoke Gradle
,Gradle Version
選擇以前配置的gradle,Tasks
輸出clean build
。表示須要Gradle先執行clean
命令,在執行build
命令。都填好後,點擊保存。

如今使用Gradle構建代碼也配置好了,咱們來測試一下,在任務頁面點擊當即構建
,等待執行成功。

執行成功後,進入Jenkins工程目錄,發現demo-jenkins-service
文件夾下多出了個build
文件下,裏面有構建後的文件,在libs
文件夾下,能夠找到構建後的工程文件demo-jenkins-service.jar
。

至此,經過Jenkins使用git下載代碼並使用Gradle構建工程成功。
7、配置Jenkins使用SSH插件推送jar包到其餘服務器,並啓動jar包
如今咱們已經能夠經過Gradle構建用git下載的代碼了,還須要將構建後的jar包推送到其餘服務器去運行。Jenkins提供了SSH傳輸的插件,咱們可使用插件來推送文件。
先來安裝SSH插件,從系統管理
進入管理插件
頁面。

在可選插件中找到Publish Over SSH
,選中後點擊直接安裝
。

安裝中頁面,勾選上安裝完成後重啓,耐心等待安裝完成。

如今插件安裝好了,開始配置插件。從系統管理
進入系統設置
頁面。

在頁面中找到Publish over SSH
,點擊增長
。

Name
起一個別名,這裏叫aliyun;Hostname
填寫服務器ip地址;Username
填寫服務器登陸用戶名;Remote Directory
填寫登陸後路徑;點擊高級
打開擴展頁面,勾選上使用密碼認證,在密碼裏填寫登陸用戶名對應的密碼。

所有填寫好後,點擊Test Configuration
測試是否能夠成功訪問服務器,若是填寫的信息都正確,應該提示Success
,點擊保存
完成訪問服務器的配置。

如今設置好了訪問服務器,咱們來配置把jar包傳過去運行。
打開任務,進入任務配置頁面,在構建後操做
欄目下,點擊增長構建後操做步驟
,選擇Send build artifacts over SSH
。

在配置頁面填寫參數,Name選擇咱們剛纔配置的服務器aliyun
;Source files
輸入咱們但願上傳的包相對於工程根目錄的路徑,根據Gradle構建的位置,這裏應該填build/libs/demo-jenkins-service.jar
;Remove prefix
是移除前綴,這裏填寫build/libs/
,若是不填的話,插件會把build/libs/demo-jenkins-service.jar
連文件夾一塊兒傳過去,填寫了就會只傳一個demo-jenkins-service.jar
文件;Remote directory
是服務器傳接收上傳文件的路徑;最後Exec command
爲上傳成功後在服務器上執行的命令。這裏咱們輸入以下命令
chmod 777 /service/demo-jenkins-service.jar rm -f /etc/init.d/demo-jenkins-service ln -s /service/demo-jenkins-service.jar /etc/init.d/demo-jenkins-service service demo-jenkins-service restart
這三行命令的意思是
1.給文件demo-jenkins-service.jar
賦予可執行權限
1.強制刪除/etc/init.d/demo-jenkins-service這個快捷方式
2.將/service/demo-jenkins-service.jar這個文件建立一個/etc/init.d/demo-jenkins-service的快捷方式。注:/etc/init.d路徑下的可執行文件將被自動註冊爲linux service。
3.使用service restart命令重啓剛註冊的service服務。

等待Jenkins構建完成,在瀏覽器訪問該服務的接口。

能夠成功訪問。 至此,在linux中使用Jenkins集成git、Gradle持續構建Springboot項目完成。