Jenkins部署碼雲SpringBoot專案

powerx_yc發表於2018-11-06

本文介紹jenkins如何從gitee上clone專案,然後使用maven打包並後臺啟動。

1.Jenkins介紹

9953332-113dec591fa3f53d
image

Jenkins是一個開源軟體專案,是基於Java開發的一種持續整合工具,用於監控持續重複的工作,旨在提供一個開放易用的軟體平臺,使軟體的持續整合變成可能。 (以上介紹來源於百度百科)

其實通俗來說,Jenkins就是一個自動化部署專案的工具,幫我省去重複的運維工作。

2.環境準備

本文需要如下幾個工具:

  • JDK
9953332-4fb666ef4989d8b3
image
  • Git
9953332-461327304308f1cd
image
  • Maven
9953332-57f30f336d952bce
image

以上三種就不在這裡介紹安裝了,這裡我貼出我的環境變數配置僅供參考:

9953332-15a9ed2e22135f95
image
  • Jenkins

我的Jenkins是使用如下方式安裝:

sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
sudo yum install jenkins

啟動

service jenkins start

然後訪問http://${ip}/8080,可以看到jenkins那個小老頭,根據自行配置安裝外掛,其中密碼在這裡

vi /var/lib/jenkins/secrets/initialAdminPassword

以上都在網上有很多,我在部落格中也寫過,就不在這裡廢話太多了。

3.Jenkins工具外掛配置

3.1 外掛配置

個人建議,Jenkins第一次進入推薦安裝的外掛就預設安裝就行,省的還需要後續自己安裝,當然,如果自己安裝的話需要Maven和Git外掛。

3.2 工具配置

  • JDK
9953332-3647af2320fdeced
image
  • Git
9953332-d57eaf1024311830
image
  • Maven
9953332-04ec1203722c94b1
image

這裡就可以用到上面環境準備時需要的截圖,這裡我也摸索了很久才配置完成。

4.配置專案

4.1 構建自由風格的專案

新建專案,選擇構建自由風格的專案,給專案起個名字,然後點選Ok。

4.2 配置引數化構建過程

這裡我用到了幾個引數,因為可能有時需要提前準備好引數在進行構建,如下圖:

9953332-9913b0727bbf6504
image
9953332-e10dddfd40c4bcf0
image
  • jar_path :本意是準備專案打包後的jar位置,其實這裡是Jenkins工作空間
  • spring_profile:這個是讀取配置檔案字首,比如dev,test,prod
  • jar_name:jar包名稱
  • project_name:專案名稱

4.3 Git配置

用Git進行將專案Clone下來,配置自己的使用者密碼,Repository URL配置git地址(這裡提供的地址是私密專案,專案沒什麼特別的,就是簡單SpringBoot專案,不用嘗試了,用自己專案就可以)

9953332-8f918ce96827fc0e
image

4.4 配置Build

這裡選擇執行Shell,內容如下:

mvn clean install -Dmaven.test.skip=true
echo $spring_profile $jar_path $jar_name
cd /usr/local/shell/
./stop.sh $jar_name
echo "Execute shell Finish"
./startup.sh $spring_profile $jar_path $jar_name $project_name

如圖:

9953332-8c4829726b36a624
image

在上面執行的Shell裡面還用到了兩個Shell,分別是stop.sh,實質就是找到jar執行的pid,然後kill,具體內容如下:

jar_name=${1}
echo "Stopping" ${jar_name}
pid=`ps -ef | grep ${jar_name} | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
   echo "kill -9 的pid:" $pid
   kill -9 $pid
fi

startup.sh內容如下,具體可以根據情況修改:

spring_profile=${1}
jar_path=${2}
jar_name=${3}
project_name=${4}
cd ${jar_path}/${project_name}/target/
echo ${jar_path}/${project_name}/target/
echo nohup java -jar ${jar_name} &
BUILD_ID=dontKillMe nohup java -jar ${jar_name} --spring.profiles.active=${spring_profile} &

5 測試執行

5.1 執行

點選執行後,如圖所示,剛剛預配置的引數都可以看到並可以修改,這裡我們用預設配置好的就可以。

9953332-94f3cb116a545a7c
image

然後點選執行就可以,當時遇到了一個插曲,我的Maven是安裝成功的,但是Jenkins內無法使用,報錯mvn:command not found,這裡我解決的方式是將mvn命令也指向/usr/bin/mvn,如下:

ln -s /usr/local/apache-maven-3.5.4/bin/mvn /usr/bin/mvn

訪問效果其實就是我的部落格,如圖所示:

9953332-c9d00605b2982b42
image

6 總結

總體過程坑其實還是很多的,畢竟沒有使用過,但是沒有什麼特別棘手的問題,總是出現不同的問題,有需要可以與我一起交流學習。

相關文章