1. 程式人生 > >linux伺服器中Jenkins整合git、Gradle持續構建Springboot專案

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進入歡迎頁面,點選系統管理

  Jenkins歡迎頁面

進入管理頁面,點選Global Tool Configuration進入全域性工具配置頁面。

  Jenkins管理頁面

在全域性工具配置頁面,我們可以配置JDK、GIT、Gradle。這裡我們先配置JDK,點選新增JDK

  Jenkins全域性工具1

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

  Jenkins Jdk配置

點選Save,JDK配置完成。

四、在Jenkins配置GIT路徑

剛才配置好了JDK,現在我們開始配置GIT。還是開啟全域性工具配置頁面,在JDK的配置下面,可以看到GIT相關的配置。

  Jenkins GIT配置

Name處寫上別名,叫什麼都行,這裡習慣性寫gitPath 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公私鑰

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

  獲取公鑰

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


  SSH Key和github關聯

ps.這裡生成SSHKey是基於linux安裝jenkins的,如果你使用的是Docker版,參考Docker版本Jenkins的使用這篇文章的最後一章。

現在Jenkins所在機器的SSH Key和github關聯上了,我們回到Jenkins歡迎頁面,點選新建

  新建任務1

在新建任務頁面,輸入任務名,選擇構建一個自由風格的軟體專案,點選OK

  新建任務2

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

  原始碼管理

Repository URL欄位填寫git遠端倉庫地址,你可以從github上找到。

  Paste_Image.png

配置上git遠端倉庫地址後,可以看見有錯誤資訊提示沒有許可權,點選Add按鈕,新增證書。注意KindSSH username with private keyPrivate KeyFrom 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

  Jenkins配置Gradle

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

  配置Gradle指令碼1

在Gradle指令碼頁面,選擇Invoke GradleGradle Version選擇之前配置的gradle,Tasks輸出clean build。表示需要Gradle先執行clean命令,在執行build命令。都填好後,點選儲存。

  配置Gradle指令碼2

現在使用Gradle構建程式碼也配置好了,我們來測試一下,在任務頁面點選立即構建,等待執行成功。

  Gradle構建測試

執行成功後,進入Jenkins工程目錄,發現demo-jenkins-service資料夾下多出了個build檔案下,裡面有構建後的檔案,在libs資料夾下,可以找到構建後的工程檔案demo-jenkins-service.jar

  Gradle構建後檢查

至此,通過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
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。