1. 程式人生 > >linux服務器中Jenkins集成git、Gradle持續構建Springboot項目

linux服務器中Jenkins集成git、Gradle持續構建Springboot項目

完成 var 方式 ecb posit table 構建 bin 路徑

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

linux服務器中Jenkins集成git、Gradle持續構建Springboot項目