三十二張圖告訴你,Jenkins構建Spring Boot 有多簡單~


持續原創輸出,點擊上方藍字關注我

目錄

  • 前言
  • 如何安裝Jenkins?
    • 環境准備
    • 開始安裝Jenkins
  • 初始化配置
    • 訪問首頁
    • 輸入管理員密碼
    • 安裝插件
    • 創建管理員
    • 實例配置
    • 配置完成
  • 構建Spring Boot 項目
    • 配置JDK、maven、Git環境
    • 安裝插件
    • 添加 SSH Server
    • 添加憑據
    • 新建Maven項目
    • 構建任務
  • 如何構建托管在GitLab的項目?
    • 安裝插件
    • 添加GitLab API token
    • 配置GitLab插件
    • 新建任務
    • 后續操作
  • 多模塊項目如何構建?
  • 總結

前言

自動持續集成不知道大家伙有沒有聽說過,有用過類似的工具嗎?

簡而言之,自動持續集成的工作主要是能對項目進行構建、自動化測試和發布。

今天這篇文章就來講講常用的持續集成的工具Jenkins以及如何自動構建Spring Boot項目。

如何安裝Jenkins?

Jenkins是Java開發的一套工具,可以直接下載war包部署在Tomcat上,但是今天作者用最方便、最流行的Docker安裝。

環境准備

在開始安裝之前需要准備以下環境和工具:

  1. 一台服務器,當然沒有的話可以用自己的電腦,作者的服務器型號是 Ubuntu
  2. JDK環境安裝,作者的版本是 1.8,至於如何安裝,網上很多教程。
  3. 准備 maven環境,官網下載一個安裝包,放在指定的目錄下即可。
  4. Git環境安裝,網上教程很多。
  5. 代碼托管平台,比如 GithubGitLab等。

開始安裝Jenkins

Docker安裝Jenkins非常方便,只要跟着作者的步驟一步步操作,一定能夠安裝成功。

Docker環境安裝

每個型號服務器安裝的方式各不相同,讀者可以根據自己的型號安裝,網上教程很多。

拉取鏡像

我這里安裝的版本是jenkins/jenkins:2.222.3-centos,可以去這里獲取你需要的版本: https://hub.docker.com/_/jenkins?tab=tags。執行如下命令安裝:

docker pull jenkins/jenkins:2.222.3-centos

創建本地數據卷

在本地創建一個數據卷掛載docker容器中的數據卷,我創建的是/data/jenkins_home/,命令如下:

 mkdir -p /data/jenkins_home/

需要修改下目錄權限,因為當映射本地數據卷時,/data/jenkins_home/目錄的擁有者為root用戶,而容器中jenkins用戶的 uid1000

chown -R 1000:1000 /data/jenkins_home/

創建容器

除了需要掛載上面創建的/data/jenkins_home/以外,還需要掛載mavenjdk的根目錄。啟動命令如下:

docker run -d --name jenkins -p 8040:8080 -p 50000:50000 -v /data/jenkins_home:/var/jenkins_home -v /usr/local/jdk:/usr/local/jdk -v /usr/local/maven:/usr/local/maven jenkins/jenkins:2.222.3-centos

以上命令解析如下:

  1. -d:后台運行容器
  2. --name:指定容器啟動的名稱
  3. -p:指定映射的端口,這里是將服務器的 8040端口映射到容器的 8080以及 50000映射到容器的 50000注意: 804050000一定要是開放的且未被占用,如果用的是雲服務器,還需要在管理平台開放對應的規則。
  4. -v:掛載本地的數據卷到 docker容器中, 注意: 需要將 JDKmaven的所在的目錄掛載。

初始化配置

容器啟動成功,則需要配置Jenkins,安裝一些插件、配置遠程推送等等。

訪問首頁

容器創建成功,訪問http://ip:8040,如果出現以下頁面表示安裝成功:

輸入管理員密碼

啟動成功,則會要求輸入密碼,如下圖:

這里要求輸入的是管理的密碼,提示是在/var/jenkins_home/secrets/initialAdminPassword,但是我們已經將/var/jenkins_home這個文件夾掛載到本地目錄了,因此只需要去掛載的目錄/data/jenkins_home/secrets/initialAdminPassword文件中找。

輸入密碼,點擊繼續。

安裝插件

初始化安裝只需要安裝社區推薦的一些插件即可,如下圖:

這里選擇安裝推薦的插件,然后 Jenkins 會自動開始安裝。

注意: 如果出現想插件安裝很慢的問題,找到/data/jenkins_home/updates/default.json文件,替換的內容如下:

  1. updates.jenkins-ci.org/download 替換為 mirrors.tuna.tsinghua.edu.cn/jenkins
  2. www.google.com 替換為 www.baidu.com

執行以下兩條命令:

sed -i 's/www.google.com/www.baidu.com/g' default.json
 sed -i 's/updates.jenkins-ci.org\/download/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json 

全部安裝完成,繼續下一步。

創建管理員

隨便創建一個管理員,按要求填寫信息,如下圖:

實例配置

配置自己的服務器IP端口,如下圖:

配置完成

按照以上步驟,配置完成后自動跳轉到如下界面:

構建Spring Boot 項目

在構建之前還需要配置一些開發環境,比如JDKMaven等環境。

配置JDK、maven、Git環境

Jenkins集成需要用到mavenJDKGit環境,下面介紹如何配置。

首先打開系統管理->全局工具配置,如下圖:

分別配置JDKGitMaven的路徑,根據你的實際路徑來填寫。

注意:這里的JDKGitMaven環境一定要掛載到docker容器中,否則會出現以下提示:

 xxxx is not a directory on the Jenkins master (but perhaps it exists on some agents)

配置成功后,點擊保存。

安裝插件

除了初始化配置中安裝的插件外,還需要安裝如下幾個插件:

  1. Maven Integration
  2. Publish Over SSH

打開系統管理 -> 插件管理,選擇可選插件,勾選中 Maven IntegrationPublish Over SSH,點擊直接安裝

在安裝界面勾選上安裝完成后重啟 Jenkins

添加 SSH Server

SSH Server 是用來連接部署服務器的,用於在項目構建完成后將你的應用推送到服務器中並執行相應的腳本。

打開 系統管理 -> 系統配置,找到 Publish Over SSH 部分,選擇新增

點擊 高級 展開配置

最終配置如下:

配置完成后可點擊 Test Configuration 測試連接,出現 success 則連接成功。

添加憑據

憑據 是用來從 Git 倉庫拉取代碼的,打開 憑據 -> 系統 -> 全局憑據 -> 添加憑據

這里配置的是Github,直接使用用戶名密碼,如下圖:

創建成功,點擊保存。

新建Maven項目

以上配置完成后即可開始構建了,首先需要新建一個Maven項目,步驟如下。

創建任務

首頁點擊新建任務->構建一個maven項目,如下圖:

源碼管理

在源碼管理中,選擇Git,填寫倉庫地址,選擇之前添加的憑證

構建環境

勾選 Add timestamps to the Console Output,代碼構建的過程中會將日志打印出來。

構建命令

Build中,填寫 Root POMGoals and options,也就是你構建項目的命令。

Post Steps

選擇Run only if build succeeds,添加 Post 步驟,選擇 Send files or execute commands over SSH

上圖各個選項解析如下:

  1. name:選擇前面添加的 SSH Server
  2. Source files:要推送的文件
  3. Remove prefix:文件路徑中要去掉的前綴,
  4. Remote directory:要推送到目標服務器上的哪個目錄下
  5. Exec command:目標服務器上要執行的腳本

Exec command指定了需要執行的腳本,如下:

# jdk環境,如果全局配置了,可以省略
export JAVA_HOME=/xx/xx/jdk export JRE_HOME=/xx/xx/jdk/jre export CLASSPATH=/xx/xx/jdk/lib export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH  # jenkins編譯之后的jar包位置,在掛載docker的目錄下 JAR_PATH=/data/jenkins_home/workspace/test/target # 自定義的jar包位置 DIR=/data/test  ## jar包的名稱 JARFILE=swagger-demo-0.0.1-SNAPSHOT.jar  if [ ! -d $DIR/backup ];then  mkdir -p $DIR/backup fi  ps -ef | grep $JARFILE | grep -v grep | awk '{print $2}' | xargs kill -9  if [ -f $DIR/backup/$JARFILE ]; then  rm -f $DIR/backup/$JARFILE fi  mv $JAR_PATH/$JARFILE $DIR/backup/$JARFILE   java -jar $DIR/backup/$JARFILE > out.log & if [ $? = 0 ];then  sleep 30  tail -n 50 out.log fi  cd $DIR/backup/ ls -lt|awk 'NR>5{print $NF}'|xargs rm -rf 

以上腳本大致的意思就是將kill原有的進程,啟動新構建jar包。

腳本可以自己定制,比如備份Jar等操作。

構建任務

項目新建完成之后,一切都已准備就緒,點擊立即構建可以開始構建任務,控制台可以看到log輸出,如果構建失敗,在log中會輸出原因。

任務構建過程會執行腳本啟動項目。

如何構建托管在GitLab的項目?

上文介紹的例子是構建Github倉庫的項目,但是企業中一般都是私服的GitLab,那么又該如何配置呢?

其實原理是一樣的,只是在構建任務的時候選擇的是GitLab的憑據,下面將詳細介紹。

安裝插件

系統管理->插件管理->可選插件中搜索GitLab Plugin並安裝。

添加GitLab API token

首先打開 憑據 -> 系統 -> 全局憑據 -> 添加憑據,如下圖:

上圖中的API token如何獲取呢?

打開GitLab(例如公司內網的GitLab網站),點擊個人設置菜單下的setting,再點擊Account,復制Private token,如下:

上圖的Private token則是API token,填上即可。

配置GitLab插件

打開系統管理->系統配置->GitLab,如下圖:

配置成功后,點擊Test Connection,如果提示Success則配置成功。

新建任務

新建一個Maven任務,配置的步驟和上文相同,唯一區別則是配置Git倉庫地址的地方,如下圖:

倉庫地址和憑據需要填寫Gitlab相對應的。

后續操作

后續一些操作,比如構建項目,控制台輸出等操作,都是和GitHub操作相同,不再贅述了。

多模塊項目如何構建?

如果你的多模塊不是通過私服倉庫依賴的,那么在構建打包是有先后順序的,在新建任務的時候需要配置Buildmaven命令,如下圖:

上圖中的Goals and options中的命令就是構建api這個模塊的命令,至於這個命令是什么意思,前面有單獨一篇文章介紹過,請看一次打包引發的思考,原來maven還能這么玩~

總結

本文詳細的介紹了如何從零安裝部署一個Jenkins,這下又能吹牛了,哈哈....

如果覺得不錯,點個贊不迷路~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM