詳解jenkins自動部署springboot應(yīng)用的方法
最近公司在利用jenkins自動部署springboot應(yīng)用,以前別人配的那個jenkins雖說可以正常部署,但是多次反復(fù)部署之后jenkins會報錯,提示內(nèi)存不足:
Maven JVM terminated unexpectedly with exit code 137
原因是因為jenkins沒有配置部署新的應(yīng)用前先把舊的應(yīng)用進(jìn)程先kill掉而導(dǎo)致在服務(wù)器上有多個應(yīng)用進(jìn)程。因此自己決定摸索如何配置jenkins可以每次部署都把舊進(jìn)程kill掉再啟動新進(jìn)程。
安裝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
啟動/停止Jenkins:
sudo service jenkins start/stop/restart sudo chkconfig jenkins on
安裝完成后,默認(rèn)端口是8080,可以在啟動日志中查看管理員密碼,日志路徑:/var/log/jenkins/jenkins.log;
安裝Jenkins后,啟動Jenkins需要Java環(huán)境,如果啟動報錯記得查看服務(wù)器是否安裝了JRE;
此時還不能通過ip和端口訪問Jenkins,還要配置防火墻:
vim /etc/yum.repos.d/jenkins.repo #需要root權(quán)限 #在文件中寫入如下內(nèi)容: firewall-cmd --permanent --new-service=jenkins firewall-cmd --permanent --service=jenkins --set-short="Jenkins Service Ports" firewall-cmd --permanent --service=jenkins --set-description="Jenkins service firewalld port exceptions" firewall-cmd --permanent --service=jenkins --add-port=8080/tcp firewall-cmd --permanent --add-service=jenkins firewall-cmd --zone=public --add-service=http --permanent firewall-cmd --reload #保存退出 firewall-cmd --list-all
到此為止,Jenkins基本安裝完成了,在瀏覽器輸入ip:prot 就可以訪問了。
一、首先需要先配置好jenkins的基本配置,這些就不在這里一一詳述了,只寫一個Publish over SSH的
1、先安裝好該插件 :Publish over SSH
2、配置如下:

點開下面的高級配置登錄linux服務(wù)器的密碼。
2、然后就是配置部署項目的東西了。
配置從源碼庫拉取代碼:

構(gòu)建環(huán)境中勾選,代碼構(gòu)建的過程中會將日志打印出來

Pre Steps和Build:

Post Steps:

Exec command中是要通過SSH去服務(wù)器上執(zhí)行的腳步以及腳本文件;
Source files配置:target/xxx-0.0.1-SNAPSHOT.jar 項目jar包名
Remove prefix:target/
Remote directory: 代碼應(yīng)用服務(wù)器的目錄地址,
Exec command:應(yīng)用服務(wù)器對應(yīng)的腳本。
以下是腳本文件內(nèi)容:
stop.sh
#!/bin/bash
echo "stop SpringBoot BAppApiServerApplication"
pid=`ps -ef | grep ejoyst-bappapi-gateway.jar | grep -v grep | awk '{print $2}'`
echo “舊應(yīng)用進(jìn)程id:$pid”
if [ -n "$pid" ]
then
kill -9 $pid
fi
start.sh
#!/bin/bash
export JAVA_HOME=/usr/java/jdk1.8.0_161
echo ${JAVA_HOME}
echo "授權(quán)當(dāng)前用戶"
chmod 777 /opt/deploy/ejoyst-bappapi-gateway.jar
echo "執(zhí)行...."
cd /opt/deploy/
nohup ${JAVA_HOME}/bin/java -jar ejoyst-bappapi-gateway.jar > /dev/null &
echo "啟動成功"
構(gòu)建后操作中 配置Archive the artifacts:內(nèi)容是當(dāng)前構(gòu)建應(yīng)用的jar包或者war包的相對路徑,

這樣可以在部署成功頁面看到,可以直接點擊下載:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Jenkins+Docker?一鍵自動化部署?SpringBoot?項目的詳細(xì)步驟
- Jenkins一鍵打包部署SpringBoot應(yīng)用的方法步驟
- 使用jenkins部署springboot項目的方法步驟
- Jenkins Pipeline 部署 SpringBoot 應(yīng)用的教程詳解
- springboot docker jenkins 自動化部署并上傳鏡像的步驟詳解
- jenkins+docker+nginx+nodejs持續(xù)集成部署vue前端項目
- Jenkins自動化部署Vue項目的方法實現(xiàn)
- 使用jenkins一鍵打包發(fā)布vue項目的實現(xiàn)
- jenkins自動構(gòu)建發(fā)布vue項目的方法步驟
- 云服務(wù)器Jenkins部署Springboot項目及Vue項目的詳細(xì)過程
相關(guān)文章
Java中transient關(guān)鍵字的詳細(xì)總結(jié)
本文要介紹的是Java中的transient關(guān)鍵字,transient是短暫的意思。對于transient 修飾的成員變量,在類的實例對象的序列化處理過程中會被忽略,感興趣的朋友可以參考閱讀2023-04-04
Springboot通過請求頭獲取當(dāng)前用戶信息方法詳細(xì)示范
這篇文章主要介紹了Springboot通過請求頭獲取當(dāng)前用戶信息的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-11-11
Java concurrency之AtomicReference原子類_動力節(jié)點Java學(xué)院整理
AtomicReference是作用是對"對象"進(jìn)行原子操作。這篇文章主要介紹了Java concurrency之AtomicReference原子類,需要的朋友可以參考下2017-06-06
解決java.lang.ClassCastException的java類型轉(zhuǎn)換異常的問題
這篇文章主要介紹了解決java.lang.ClassCastException的java類型轉(zhuǎn)換異常的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09
SpringBoot系列教程之dubbo和Zookeeper集成方法
這篇文章主要介紹了SpringBoot系列教程之dubbo和Zookeeper集成方法,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09
Spring?Security實現(xiàn)接口放通的方法詳解
在用Spring?Security項目開發(fā)中,有時候需要放通某一個接口時,我們需要在配置中把接口地址配置上,這樣做有時候顯得麻煩。本文將通過一個注解的方式快速實現(xiàn)接口放通,感興趣的可以了解一下2022-05-05

