使用 Jenkins 部署碼云上的 Spring Boot 項目
本文介紹 jenkins 何從 gitee 上 clone 項目,然后使用 maven 打包并后臺啟動。
1.Jenkins 介紹

Jenkins 是一個開源軟件項目,是基于 Java 開發(fā)的一種持續(xù)集成工具,用于監(jiān)控持續(xù)重復的工作,旨在提供一個開放易用的軟件平臺,使軟件的持續(xù)集成變成可能。(以上介紹來源于百度百科)
其實通俗來說,Jenkins 就是一個自動化部署項目的工具,幫我省去重復的運維工作。
2. 環(huán)境準備
本文需要如下幾個工具:
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
啟動
service?jenkins?start
然后訪問 http://${ip}/8080,可以看到 jenkins 那個小老頭,根據(jù)自行配置安裝插件,其中密碼在這里
vi?/var/lib/jenkins/secrets/initialAdminPassword
以上都在網(wǎng)上有很多,我在博客中也寫過,就不在這里廢話太多了。
3.Jenkins 工具插件配置
3.1 插件配置
個人建議,Jenkins 第一次進入推薦安裝的插件就默認安裝就行,省的還需要后續(xù)自己安裝,當然,如果自己安裝的話需要 Maven 和 Git 插件。
3.2 工具配置
JDK

Git

Maven

這里就可以用到上面環(huán)境準備時需要的截圖,這里我也摸索了很久才配置完成。
4. 配置項目
4.1 構(gòu)建自由風格的項目
新建項目,選擇構(gòu)建自由風格的項目,給項目起個名字,然后點擊 Ok。
4.2 配置參數(shù)化構(gòu)建過程
這里我用到了幾個參數(shù),因為可能有時需要提前準備好參數(shù)在進行構(gòu)建,如下圖:

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

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 里面還用到了兩個 Shell,分別是 stop.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 測試運行
5.1 運行
點擊運行后,如圖所示,剛剛預配置的參數(shù)都可以看到并可以修改,這里我們用默認配置好的就可以。

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

6 總結(jié)
總體過程坑其實還是很多的,畢竟沒有使用過,但是沒有什么特別棘手的問題,總是出現(xiàn)不同的問題,有需要可以與我一起交流學習。
作者:dalaoyang 來源:juejin.im/post/5be1a485f265da612859974c
我們創(chuàng)建了一個高質(zhì)量的技術(shù)交流群,與優(yōu)秀的人在一起,自己也會優(yōu)秀起來,趕緊點擊加群,享受一起成長的快樂。另外,如果你最近想跳槽的話,年前我花了2周時間收集了一波大廠面經(jīng),節(jié)后準備跳槽的可以點擊這里領(lǐng)取!
推薦閱讀
ApplicationStartedEvent 與 ContextStartedEvent 有區(qū)別嗎? 接口經(jīng)常超時?線程池+ FutureTask來解決! 從 Windows 切換到 Mac,不能錯過這9條Tips
你好,我是程序猿DD,10年開發(fā)老司機、阿里云MVP、騰訊云TVP、出過書、創(chuàng)過業(yè)、國企4年互聯(lián)網(wǎng)6年。10年前畢業(yè)加入宇宙行,工資不高、也不算太忙,業(yè)余堅持研究技術(shù)和做自己想做的東西。4年后離開國企,加入永輝互聯(lián)網(wǎng)板塊的創(chuàng)業(yè)團隊,從開發(fā)、到架構(gòu)、到合伙人。一路過來,給我最深的感受就是一定要不斷學習并關(guān)注前沿。只要你能堅持下來,多思考、少抱怨、勤動手,就很容易實現(xiàn)彎道超車!所以,不要問我現(xiàn)在干什么是否來得及。如果你看好一個事情,一定是堅持了才能看到希望,而不是看到希望才去堅持。相信我,只要堅持下來,你一定比現(xiàn)在更好!如果你還沒什么方向,可以先關(guān)注我,這里會經(jīng)常分享一些前沿資訊,幫你積累彎道超車的資本。
