linux伺服器中Jenkins整合git、Gradle持續構建Springboot專案
Jenkins是用java編寫的開源持續整合工具,目前被國內外各公司廣泛使用。本章教大家如何在linux伺服器中使用Jenkins自動釋出一個可作為linux服務釋出的Springboot專案。
自動構建需要經過如下步驟:從git倉庫下載程式碼、使用Gradle進行構建、使用SSH推送到另一臺linux伺服器、專案作為linux服務啟動。本章將逐條仔細講解。
一、獲得一臺linux伺服器
要在linux下搞持續構建,首先你得先有一臺linux伺服器,作為小白,手頭的機器肯定都是windows的,搞個虛擬機器安裝對我這種小白簡直是折磨人;這裡使用最簡單的方式獲得一臺linux伺服器,就是從阿里雲上租一臺。映象選擇CentOS7.3 64位。
阿里雲上租伺服器
二、準備工作
在開始部署持續構建之前,你需要先安裝好必備的軟體,包含jdk、git、Gradle、Jenkins。如果你不熟悉這些軟體怎麼安裝,可以檢視本人之前釋出的教程。傳送門:jdk安裝、git安裝、Gradle安裝、Linux下Jenkins安裝、Docker版本Jenkins的使用。
另外,你還需要在git倉庫中有一份可作為服務啟動的springboot程式碼。不熟悉的同學參考之前釋出的教程。傳送門使用github管理標準springboot程式碼
三、配置Jenkins使用的JDK
登入Jenkins進入歡迎頁面,點選系統管理
。
進入管理頁面,點選Global Tool Configuration
進入全域性工具配置頁面。
在全域性工具配置頁面,我們可以配置JDK、GIT、Gradle。這裡我們先配置JDK,點選新增JDK
配置好JDK的別名,以及設定JAVA_HOME路徑,按照之前JDK安裝教程的yum安裝方式,JAVA_HOME的路徑應該是/usr/lib/jvm/java-1.8.0
。
點選Save
,JDK配置完成。
四、在Jenkins配置GIT路徑
剛才配置好了JDK,現在我們開始配置GIT。還是開啟全域性工具配置頁面,在JDK的配置下面,可以看到GIT相關的配置。
Jenkins GIT配置Name處寫上別名,叫什麼都行,這裡習慣性寫git
;Path to Git executable
這個地方要注意,不是填git資料夾所在路徑,需要填寫git可執行檔案的路徑。按照之前教程git安裝的手動下載原始碼安裝的方式,此處應該填寫/usr/local/git/bin/git
。
點選Save
,GIT配置完成。
五、配置Jenkins使用GIT下載程式碼
剛才在Jenkins中配置了git,現在開始使用git來下載程式碼。首先,需要在linux上生成一套SSH Key,並將SSH Key和github相關聯。
輸入命令ssh-keygen -t rsa -C "[email protected]"
來生成ssh公私鑰。注意把郵箱替換成自己的郵箱。生成的時候會有輸入框提示 第一次是讓你輸入檔案的地址,第二次和第三次是輸出密碼。這裡全部敲回車,使用預設地址,不設定密碼。
現在SSH公私鑰生成好了,輸入命令tail /root/.ssh/id_rsa.pub
來獲取公鑰。
複製公鑰,到github上開啟管理頁面關聯上。
SSH Key和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下載程式碼配置成功。
六、配置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構建工程成功。
七、配置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專案完成。
作者:低調的微胖
連結:https://www.jianshu.com/p/eb3cbb34be97
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。