Jenkins是一個開源的持續(xù)集成工具,應用Jenkins搭建持續(xù)集成環(huán)境,可以進行自動構建别惦、自動編譯和部署,非常方便夫椭。
在服務器比較少的情況下掸掸,Jenkins的優(yōu)勢并不明顯,但是隨著項目發(fā)展蹭秋,服務器數(shù)量的增加扰付,Jenkins的優(yōu)勢就會凸顯出來,可以很好的提高效率仁讨,減少很多人工操作羽莺。
現(xiàn)在公司的開發(fā)都是使用Git管理代碼,Maven管理多模塊和項目依賴洞豁,
所以今天嘗試學習使用Jenkins搭配Git與Maven進行自動構建和部署SpringBoot項目盐固。
一、準備環(huán)境
我是本地使用虛擬機進行搭建的丈挟,機器上面已經(jīng)安裝了tomcat9刁卜、jdk1.8、maven3.5.4曙咽、git1.8.3
二蛔趴、下載Jenkins進行部署并啟動
地址:http://mirrors.jenkins.io/war-stable/(PS:這個里面是Jenkins全部歷史版本清單,樓主用的是Jenkins2.138.2版本)
咱們把Jenkins.war包直接放到Tomcat的webapps目錄里面例朱,這邊我就不介紹如何搭建Tomcat和jdk環(huán)境了孝情,下次再補吧~_~/
如果Tomcat是啟動的話,Jenkins項目會自動解壓的洒嗤,如沒啟動Tomcat箫荡,咱們運行腳本啟動即可。然后訪問地址:http://192.168.92.129/jenkins/渔隶,這個ip就是你部署機器的ip地址羔挡。如果顯示以下界面,恭喜你Jenkins成功啟動派撕。
這個初始密碼婉弹,咱們可以在Tomcat的catalina.out日志里面會有顯示的,直接在日志里面掏出來就好了终吼。
選擇安裝方式镀赌,默認第一種就好了,它會自動把我們安裝常用的插件(PS:如果默認裝的插件沒有咱們要用的际跪,我們可以在安裝完后商佛,點擊 系統(tǒng)管理-插件管理喉钢,去搜索咱們想要的插件進行安裝即可)
安裝完,設置對應登錄賬戶即可進入我們的主頁
三良姆、配置對應系統(tǒng)工具
因為咱們服務器里面都是裝有對應jdk肠虽、maven環(huán)境的,我們需要在全局工具配置進行配置玛追。
四税课、開始來構建咱們的Maven項目
直接在首頁直接點擊“新建任務”
在源碼管理界面,填寫你的項目地址痊剖。
構建觸發(fā)器韩玩,去掉所有勾選,采用手動點擊觸發(fā)即可陆馁。
五找颓、配置構建成功后的動作,進行添加shell
Post Steps選項設置構建完成后的動作叮贩,
選擇Run only if build succeeds or is unstable击狮,點擊添加Execute Shell:
Command部分
#!/bin/bash
cd /home/test/
./stop.sh
./replace.sh
echo "Execute shell Finish"
BUILD_ID=dontKillMe nohup /home/test/startup.sh &
這里需要三個文件,分別是 stop.sh, replace.sh, startup.sh
放在/home/test目錄中(PS:這個目錄你們可以自定義的)
stop.sh
echo "Stopping test"
pid=`ps -ef | grep test.jar | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
? echo "kill -9 pid:" $pid
? kill -9 $pid
fi
replace.sh
cp /root/.jenkins/workspace/Test/target/test.jar /home/test
startup.sh
java -jar /home/test/test.jar
PS:因為樓主這個是SpringBoot項目益老,所以shell腳本也是執(zhí)行jar文件
構建成功彪蓬,項目狀態(tài)為藍色,失敗是紅色杨箭。
非常雞凍唆貌,成功顯示非常熟悉的?hello world!? 自此误阻,maven工程就打成jar包,通過Jenkins構建并部署執(zhí)行就成功啦叭披!
六辽狈、遇到的問題
第一次構建的時候慈参,看見控制臺輸出?
nohup: failed to run command '/home/test/startup.sh': Permission denied
經(jīng)過檢查發(fā)現(xiàn)是執(zhí)行shell腳本沒有權限,于是在執(zhí)行 startup.sh 前面給它進行賦權chmod 777 /home/test/startup.sh
? ? ?這次也是樓主第一次在簡書上面進行分享文章刮萌,如果有啥不足希望大家多多指教驮配,因為樓主在學習使用Jenkins構建SpringBoot項目遇到了很多坑,因為網(wǎng)上也有很多類似的文章着茸,發(fā)現(xiàn)有些文章寫的并不是非常詳細壮锻,經(jīng)過一系列踩坑后終于還是搭建成功了。也不知道這篇文章大家看不看得懂涮阔,如果有啥問題歡迎大家進行評論猜绣。