上一篇搭建jenkins不在贅述。
安裝必要插件
- Folders
- OWASP Markup Formatter
- Build Timeout
- Maven Integration
- publish over ssh
- SSH
- Git Parameter
進入jenkins插件管理,在可用插件頁面搜索以上插件並下載。
配置ssh信息
插件下載完畢之后進入 --系統設置。
passphrase:虛擬機密碼
如果沒有SSH servers 點擊新增。
name:別名(沒有特殊意義)
hostname:虛擬機地址
username:虛擬機登錄用戶名
remote directory:虛擬機根目錄
test Configuration:測試是否可以連接成功 ,success為成功
配置本地工具
進入Global Tool Configuration 全局工具配置
配置本地jdk
配置本地git
配置本地maven
新建一個maven項目
設置git
源碼管理選擇git,輸入git倉庫地址和選擇認證密碼
點擊添加,添加憑證。可以選擇賬號密碼也可以選擇私鑰。
設置構建觸發器
- Build whenever a SNAPSHOT dependency is built 每當建立SNAPSHOT依賴項時就進行構建
- 觸發遠程構建 (例如,使用腳本) 觸發遠程重建(例如,使用腳本)
- Build after other projects are built 在其他項目建成后建造
- Build periodically 定期建立
- GitHub hook trigger for GITScm polling GitHub鈎子觸發GITScm輪詢
- Poll SCM 輪詢SCM
這里我選擇輪詢(每三十分一次)
輪詢的規則點擊右邊問號。(篇幅太長不截圖)
設置Build
填入命令
clean install -Dmaven.test.skip=true -Ptest
設置Post Steps
依次填入
- 服務器地址 name:ip
- 源文件 source files : target/*.jar
- 刪除前綴 remove prefix :target/
- 遠端目錄 remote directory :/usr/local/jenkins//(注意這里是雙斜杠)
- 執行命令 exec command :/usr/local/jenkins/startup.sh
新建startup.sh啟動腳本
在/usr/local/jenkins下新建一個startup.sh腳本
更改權限 : chmod 777 startup.sh
DATE=$(date +%Y%m%d)
## 配置環境變量
export JAVA_HOME JRE_HOME PATH CLASSPATH
JAVA_HOME=/usr/local/jdk-11.0.1
JRE_HOME=\$JAVA_HOME/
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
## 注意stu是我的springboot工程名
DIR=/root/.jenkins/workspace/school/target/stu-0.0.1-SNAPSHOT.jar
## jar文件
JARFILE=stu-0.0.1-SNAPSHOT.jar
##如果文件夾backup不存在就新建
if [ ! -d $DIR/backup ];then
mkdir -p $DIR/backup
fi
##進入dir文件下
cd $DIR
## 殺掉之前存在的該jar的進程(第一次會有kill 命令的提示,不影響)
ps -ef | grep $JARFILE | grep -v grep | awk '{print $2}' | xargs kill -9
## 移動文件
mv $JARFILE backup/$JARFILE$DATE
## 移動到遠程目錄
mv -f /usr/local/jenkins//$JARFILE .
## 啟動jar並輸出日志
java -jar $JARFILE > out.log &
if [ $? = 0 ];then
sleep 30
tail -n 50 out.log
fi
cd backup/
ls -lt|awk 'NR>5{print $NF}'|xargs rm -rf
等待jenkins自動構建(push 代碼)或者手動構建
構建完成
參考博客:https://blog.csdn.net/qq_35867875/article/details/87178382 ;作者:Mr_zqcheng