?????博主簡(jiǎn)介
????云計(jì)算領(lǐng)域優(yōu)質(zhì)創(chuàng)作者
????華為云開發(fā)者社區(qū)專家博主
????阿里云開發(fā)者社區(qū)專家博主
??交流社區(qū):運(yùn)維交流社區(qū) 歡迎大家的加入!
?? 希望大家多多支持,我們一起進(jìn)步!??
??如果文章對(duì)你有幫助的話,歡迎 點(diǎn)贊 ???? 評(píng)論 ?? 收藏 ?? 加關(guān)注+??
運(yùn)行環(huán)境說(shuō)明
運(yùn)行環(huán)境 | 運(yùn)行版本 | 作用 |
---|---|---|
操作系統(tǒng) | centos 7.8 | 運(yùn)行Jenkins的基礎(chǔ)環(huán)境 |
jenkins版本 | 2.419 | 用于構(gòu)建項(xiàng)目及其他自動(dòng)化 |
maven版本 | 3.8.6 | 用于構(gòu)建jar包 |
jdk版本 | 18、1.8 | 18(用于運(yùn)行Jenkins)、1.8(用于運(yùn)行jar包) |
一、創(chuàng)建一個(gè)maven項(xiàng)目
1.1 安裝必要的插件【必須】*
- maven
- git
- ssh
- svn
一般在部署完成,訪問(wèn)的時(shí)候選擇默認(rèn)安裝插件基本都會(huì)裝 – git。
點(diǎn)擊 Manage Jenkin
–> Plugins(插件)
--> Available plugins(商店)
- 搜索
git
和maven
和ssh
和svn
進(jìn)行安裝;
git 和 ssh 我這里已經(jīng)有了,需要更新就更新一下;
maven、svn 我這里沒(méi)有,就安裝一下吧;
安裝完成之后,在新建Item
那塊就可以看到maven了。如下↓
svn
1.2 創(chuàng)建maven任務(wù)
- 新建
Item
– > 選擇maven項(xiàng)目,起一個(gè)任務(wù)名稱。
創(chuàng)建完之后,就到了這個(gè)頁(yè)面
二、配置maven項(xiàng)目
下面來(lái)講解一下maven項(xiàng)目里的配置項(xiàng)。
2.1 maven項(xiàng)目中的配置項(xiàng)詳解
2.1.1 General
項(xiàng)目描述,可以在這塊寫一些項(xiàng)目的描述。
2.1.2 源碼管理
主要是拉取源碼用的,這里有兩種,一種是
git
,一種是svn
方式。等下我們創(chuàng)建項(xiàng)目使用的是svn方式。
這個(gè)不僅Jenkins項(xiàng)目上要安裝git插件,在服務(wù)器上也需要安裝git。
yum -y install git
2.1.3 構(gòu)建觸發(fā)器
默認(rèn)勾選上的是下面的選項(xiàng):Jenkins將會(huì)去尋找之前已經(jīng)構(gòu)建過(guò)的pom依賴(如果有之前構(gòu)建過(guò)的相同的pom文件),直接使用之前的鏡像,便不會(huì)再去重新的解析了
2.1.4 構(gòu)建環(huán)境
在這里面,勾選上對(duì)應(yīng)的內(nèi)容,將去做一些額外的處理,在這里保持默認(rèn)的,什么都不去勾選
這是翻譯后的,可根據(jù)實(shí)際情況來(lái)使用。
2.1.5 Pre Steps(準(zhǔn)備步驟)
準(zhǔn)備步驟,一般會(huì)選擇Execute shell
和 Invoke Gradle script
。
2.1.6 Build(構(gòu)建)
2.1.7 Post Steps(發(fā)布步驟)
這個(gè)配置,說(shuō)明的是:在項(xiàng)目構(gòu)建完成之后,接下來(lái)需要做的內(nèi)容
在這里,我們需要將構(gòu)建完的項(xiàng)目,打成的包傳到我們的測(cè)試服務(wù)器上,也是在這里去進(jìn)行配置的
2.1.8 構(gòu)建設(shè)置
這里可以配置電子郵件通知
。比如失敗,成功,都可以進(jìn)行發(fā)送郵件來(lái)通知提醒。
2.2 配置maven項(xiàng)目
2.2.1 服務(wù)器需要提前安裝:
如果是使用git部署,服務(wù)器上也需要安裝git;
-
jdk1.8
-
maven
-
jdk:根據(jù)自己的項(xiàng)目選擇所需的jdk版本,我的項(xiàng)目是需要
jdk11以上,用的是jdk18
才可以;
如果是需要jdk1.8,并且Jenkins是按照我的部署文檔部署的,那么默認(rèn)就會(huì)有jdk1.8,可以使用find / -name java
找一下java的安裝路徑,將絕對(duì)路徑配置到全局工具配置里就行;如果沒(méi)有安裝,需要安裝一下;可參考:Linux中安裝jdk1.8和配置環(huán)境變量 -
maven:根據(jù)自己的項(xiàng)目選擇所需的mvn版本,我的項(xiàng)目是需要
maven3.8
才可以;
maven環(huán)境默認(rèn)是沒(méi)有的,也需要在服務(wù)器安裝一下,可參考:【Linux】Centos安裝mvn命令(maven),建議使用maven3.8,下載地址:https://pan.baidu.com/s/1drjw-sQ5JKFukamVSsLqtw?pwd=b1a0
2.2.2 配置全局系統(tǒng)配置
Manage Jenkins --> System
- 配置ssh環(huán)境
提示:如果找不到ssh在哪,可以使用
ctrl+f
搜索一下;
2.2.3 配置全局工具配置
Manage Jenkins --> Tools
- maven配置
在項(xiàng)目開始前,我們安裝了maven,所以maven使用默認(rèn)的配置就行,所以這塊不用改。
如果服務(wù)器有多個(gè)maven,需要用到這時(shí)候就需要重新配置一下了,配置的時(shí)候到maven的setting.xml路徑,比如/usr/local/maven/apache-maven-3.8.6/conf/setting.xml
。
然后我們拉到最下面可以看到還有一個(gè)maven,這個(gè)需要配置一下;
找到Maven安裝 --> 點(diǎn)擊新增Maven --> 配置maven路徑即可;
- jdk配置
找到JDK安裝 --> 點(diǎn)擊新增JDK --> 配置jdk路徑即可;
配置完之后保存。
2.2.4 先寫一個(gè)描述(可寫可不寫)
進(jìn)入剛剛創(chuàng)建的maven項(xiàng)目,選擇配置
,跳到這個(gè)頁(yè)面;
2.2.5 創(chuàng)建源碼管理(svn方式)
2.2.6 保存配置
配置完之后,點(diǎn)擊保存
三、構(gòu)建maven項(xiàng)目
3.1 build(構(gòu)建)項(xiàng)目
保存完之后,看到左邊有一個(gè)build now
,然后點(diǎn)擊build(構(gòu)建)就可以了;
構(gòu)建的時(shí)候可以查看構(gòu)建過(guò)程,F5
刷新一下頁(yè)面
往下拉,看到這個(gè),點(diǎn)進(jìn)去,然后點(diǎn)擊控制臺(tái)輸出,就可以看到構(gòu)建過(guò)程了。
3.2 構(gòu)建完成
出現(xiàn)Finished: SUCCESS
就是構(gòu)建完成了。
同時(shí),最上面也會(huì)變成一個(gè)綠色的對(duì)號(hào);
構(gòu)建完之后就可以在服務(wù)器上查看了,以下是存放到服務(wù)器的路徑。
3.3 構(gòu)建報(bào)錯(cuò)總結(jié):
3.3.1 關(guān)于maven版本問(wèn)題報(bào)錯(cuò)
如果在build的時(shí)候遇到此報(bào)錯(cuò),是因?yàn)閙aven版本的問(wèn)題;
3.3.2 關(guān)于jdk版本配置的問(wèn)題
如果在build的時(shí)候遇到此報(bào)錯(cuò),是因?yàn)閖dk版本配置的問(wèn)題;
四、構(gòu)建完自動(dòng)在服務(wù)器中運(yùn)行
4.1 在項(xiàng)目中配置Post Steps(發(fā)布步驟)
這就是在build完之后,需要進(jìn)行什么操作,在這里寫。
可以使用ssh
方式或者shell
方式;ssh
和shell
其實(shí)都一樣,都是寫命令的;
ssh還需要配置全局變量,雖然上面已經(jīng)配置了,但是我一般經(jīng)常用shell
方式,看自己選擇吧。
這里以shell
方式舉例。
首先,需要返回剛剛的項(xiàng)目中進(jìn)行配置;
- 找到
Post Steps
- 選擇執(zhí)行shell,寫個(gè)shell腳本(也可以使用ssh方式,自己定義)
- shell 腳本內(nèi)容
提示:如果要運(yùn)行jar包的話,必須在腳本里添加:BUILD_ID=DONTKILLME
環(huán)境變量,防止執(zhí)行完自動(dòng)化構(gòu)建jar包程序自動(dòng)停止問(wèn)題。
#!/bin/bash
# (必須)配置一個(gè)環(huán)境變量,防止執(zhí)行完自動(dòng)化構(gòu)建jar包程序自動(dòng)停止問(wèn)題
BUILD_ID=DONTKILLME
# 源jar包及路徑
src_jar="/root/.jenkins/workspace/mytest_maven/target/cs.jar"
# 目標(biāo)jar及包路徑
dest_jar="/application/cs.jar"
# 目標(biāo)jar包路徑
dest_path="/application/"
# 創(chuàng)建目標(biāo)路徑
mkdir -p /application/
# 將打包完的jar包復(fù)制過(guò)去
## 先判斷jar包是否存在,如果存在則備份,如果不存在,則直接復(fù)制過(guò)去運(yùn)行。
if [ -e $dest_jar ];then
echo "存在此文件,開始備份,重新復(fù)制:$(date +"%Y-%m-%d")"
mv $dest_jar $dest_jar-$(date +"%Y-%m-%d")
cp -ar $src_jar $dest_jar
else
echo "目標(biāo)路徑?jīng)]有這個(gè)文件,直接復(fù)制過(guò)去"
cp -ar $src_jar $dest_jar
fi
cd $dest_path
# 檢測(cè)jar包進(jìn)程,這里直接寫jar包名稱,因?yàn)槿绻蒙厦娴沫h(huán)境變量,是路徑加jar包名,如果在服務(wù)器上但啟動(dòng)的話,可能會(huì)找不到,所以需要直接寫jar包名稱。
jar_jin=$(ps -ef | grep -v grep | grep -ic cs.jar)
if [ "$jar_jin" -ge "1" ];then
echo "檢測(cè)到進(jìn)程,先殺掉,后啟動(dòng)"
ps -ef | grep -v grep | grep cs.jar | awk -F " " '{print $2}' | xargs kill -9
java -jar $dest_jar --server.port=9999 >> app.log &
else
echo "未檢測(cè)到j(luò)ar包進(jìn)程,直接啟動(dòng)"
java -jar $dest_jar --server.port=9999 >> app.log &
fi
配置完之后,點(diǎn)擊保存;
4.2 自動(dòng)構(gòu)建jar包并運(yùn)行
- 點(diǎn)擊構(gòu)建(Build Now)
-
F5
刷新一下,可看到最新的構(gòu)建運(yùn)行
- 點(diǎn)擊進(jìn)入,查看控制臺(tái)輸出。
輸出Finished: SUCCESS
則為執(zhí)行成功。
執(zhí)行成功之后我們進(jìn)入到服務(wù)器中,查看一下服務(wù)是否啟動(dòng),可以查看端口是否啟動(dòng)或者jar包進(jìn)程是否啟動(dòng)
ps -ef | grep cs.jar
netstat -anput | grep 9999
端口和jar包進(jìn)程都存在,則可以去做訪問(wèn)頁(yè)面之類的操作了。
如果訪問(wèn)不到,需要確認(rèn)服務(wù)是否正常啟動(dòng)或防火墻端口是否開啟。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-858243.html
這樣自動(dòng)構(gòu)建打包jar包并運(yùn)行就完成了。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-858243.html
五、動(dòng)構(gòu)建打包jar包并運(yùn)行完成
到了這里,關(guān)于【Linux】使用Jenkins + svn + springboot自動(dòng)構(gòu)建jar包并自動(dòng)打包在服務(wù)器上運(yùn)行的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!