使用 Jenkins 部署碼云上的 Spring Boot 項(xiàng)目
本文介紹 jenkins 何從 gitee 上 clone 項(xiàng)目,然后使用 maven 打包并后臺(tái)啟動(dòng)。
1.Jenkins 介紹

Jenkins 是一個(gè)開(kāi)源軟件項(xiàng)目,是基于 Java 開(kāi)發(fā)的一種持續(xù)集成工具,用于監(jiān)控持續(xù)重復(fù)的工作,旨在提供一個(gè)開(kāi)放易用的軟件平臺(tái),使軟件的持續(xù)集成變成可能。(以上介紹來(lái)源于百度百科)
其實(shí)通俗來(lái)說(shuō),Jenkins 就是一個(gè)自動(dòng)化部署項(xiàng)目的工具,幫我省去重復(fù)的運(yùn)維工作。
2. 環(huán)境準(zhǔn)備
本文需要如下幾個(gè)工具:
JDK

Git

Maven

以上三種就不在這里介紹安裝了,這里我貼出我的環(huán)境變量配置僅供參考:

Jenkins
我的 Jenkins 是使用如下方式安裝:
sudo?wget?-O?/etc/yum.repos.d/jenkins.repo?http://pkg.jenkins-ci.org/redhat/jenkins.reposudo?rpm?--import?https://jenkins-ci.org/redhat/jenkins-ci.org.keysudo?yum?install?jenkins
啟動(dòng)
service?jenkins?start
然后訪問(wèn) http://${ip}/8080,可以看到 jenkins 那個(gè)小老頭,根據(jù)自行配置安裝插件,其中密碼在這里
vi?/var/lib/jenkins/secrets/initialAdminPassword
以上都在網(wǎng)上有很多,我在博客中也寫(xiě)過(guò),就不在這里廢話太多了。
3.Jenkins 工具插件配置
3.1 插件配置
個(gè)人建議,Jenkins 第一次進(jìn)入推薦安裝的插件就默認(rèn)安裝就行,省的還需要后續(xù)自己安裝,當(dāng)然,如果自己安裝的話需要 Maven 和 Git 插件。
3.2 工具配置
JDK

Git

Maven

這里就可以用到上面環(huán)境準(zhǔn)備時(shí)需要的截圖,這里我也摸索了很久才配置完成。
4. 配置項(xiàng)目
4.1 構(gòu)建自由風(fēng)格的項(xiàng)目
新建項(xiàng)目,選擇構(gòu)建自由風(fēng)格的項(xiàng)目,給項(xiàng)目起個(gè)名字,然后點(diǎn)擊 Ok。
4.2 配置參數(shù)化構(gòu)建過(guò)程
這里我用到了幾個(gè)參數(shù),因?yàn)榭赡苡袝r(shí)需要提前準(zhǔn)備好參數(shù)在進(jìn)行構(gòu)建,如下圖:

jar_path : 本意是準(zhǔn)備項(xiàng)目打包后的 jar 位置,其實(shí)這里是 Jenkins 工作空間 spring_profile:這個(gè)是讀取配置文件前綴,比如 dev,test,prod jar_name:jar 包名稱 project_name:項(xiàng)目名稱
4.3 Git 配置
用 Git 進(jìn)行將項(xiàng)目 Clone 下來(lái),配置自己的用戶密碼,Repository URL 配置 git 地址(這里提供的地址是私密項(xiàng)目,項(xiàng)目沒(méi)什么特別的,就是簡(jiǎn)單 SpringBoot 項(xiàng)目,不用嘗試了,用自己項(xiàng)目就可以)

4.4 配置 Build
這里選擇執(zhí)行 Shell,內(nèi)容如下:
mvn?clean?install?-Dmaven.test.skip=trueecho?$spring_profile?$jar_path?$jar_namecd?/usr/local/shell/./stop.sh?$jar_nameecho?"Execute?shell?Finish"./startup.sh?$spring_profile?$jar_path?$jar_name?$project_name
如圖:

在上面執(zhí)行的 Shell 里面還用到了兩個(gè) Shell,分別是 stop.sh,實(shí)質(zhì)就是找到 jar 執(zhí)行的 pid,然后 kill,具體內(nèi)容如下:
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?$pidfi
startup.sh 內(nèi)容如下,具體可以根據(jù)情況修改:
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 測(cè)試運(yùn)行
5.1 運(yùn)行
點(diǎn)擊運(yùn)行后,如圖所示,剛剛預(yù)配置的參數(shù)都可以看到并可以修改,這里我們用默認(rèn)配置好的就可以。

然后點(diǎn)擊運(yùn)行就可以,當(dāng)時(shí)遇到了一個(gè)插曲,我的 Maven 是安裝成功的,但是 Jenkins 內(nèi)無(wú)法使用,報(bào)錯(cuò) mvn:command not found,這里我解決的方式是將 mvn 命令也指向 / usr/bin/mvn,如下:
ln?-s?/usr/local/apache-maven-3.5.4/bin/mvn?/usr/bin/mvn
訪問(wèn)效果其實(shí)就是我的博客,如圖所示:

6 總結(jié)
總體過(guò)程坑其實(shí)還是很多的,畢竟沒(méi)有使用過(guò),但是沒(méi)有什么特別棘手的問(wèn)題,總是出現(xiàn)不同的問(wèn)題,有需要可以與我一起交流學(xué)習(xí)。
作者:dalaoyang 來(lái)源:juejin.im/post/5be1a485f265da612859974c
(完)
?關(guān)注公眾號(hào):Java后端編程,回復(fù)下面關(guān)鍵字?
要Java學(xué)習(xí)完整路線,回復(fù)??路線?
缺Java入門(mén)視頻,回復(fù):?視頻?
要Java面試經(jīng)驗(yàn),回復(fù)??面試?
缺Java項(xiàng)目,回復(fù):?項(xiàng)目?
進(jìn)Java粉絲群:?加群?
PS:如果覺(jué)得我的分享不錯(cuò),歡迎大家隨手點(diǎn)贊、在看。
(完) 加我"微信"?獲取一份 最新Java面試題資料 請(qǐng)備注:666,不然不通過(guò)~
最近好文
1、Mybatis 開(kāi)發(fā)神器:Fast MyBatis 超好用
3、突發(fā)!Spring Cloud 爆高危漏洞。。趕緊修復(fù)??!
最近面試BAT,整理一份面試資料《Java面試BAT通關(guān)手冊(cè)》,覆蓋了Java核心技術(shù)、JVM、Java并發(fā)、SSM、微服務(wù)、數(shù)據(jù)庫(kù)、數(shù)據(jù)結(jié)構(gòu)等等。 獲取方式:關(guān)注公眾號(hào)并回復(fù)?java?領(lǐng)取,更多內(nèi)容陸續(xù)奉上。 明天見(jiàn)(??ω??)??
