实现 jenkins 在构建完毕后自动执行某些脚本,那就需要再安装一个插件【Post build task】
回到首页,点击 【Manage Jenkins(系统管理)】-【Manage Plugins(插件管理)】-【可选插件】-输入框中输入【Post build task】
安装 【Post build task】插件,并重启 jenkins。
刷新页面,重新登录 jenkins,回到首页,点击项目名称:
点击配置:
依次点击【构建后操作】-【增加构建后操作步骤】-【post build task】
在【Log text】下填写内容 test (固定)。
在 【Script】填写以下脚本:
#!/bin/bash
# 这里可替换为你的 war 或 jar 包路径
APP_NAME=mblog-4.0.0.jar
APP_PATH=/www/wwwroot/mblog
LOG_NAME=start.log
LOG_PATH=/www/wwwroot/mblog
# 检查程序是否在运行
pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `
date > $LOG_PATH/$LOG_NAME
if [ -z "${pid}" ]; then
echo '程序目前正在启动...' >> $LOG_PATH/$LOG_NAME
# 如果程序不存在直接启动程序,根据个人需求是否需要指定端口号
cp -r target/lib /www/wwwroot/mblog/lib
cp target/mblog-4.0.0.jar $APP_PATH/$APP_NAME
nohup java -jar $APP_PATH/$APP_NAME --spring.profiles.active=pro >> $LOG_PATH/$LOG_NAME 2>&1 &
else
# 如果已经执行,将程序停止
echo '程序目前启动中,正在关闭程序...' >> $LOG_PATH/$LOG_NAME
kill -9 $pid
echo '已关闭运行中的程序~' >> $LOG_PATH/$LOG_NAME
# 停止之后启动程序,根据个人需求是否需要指定端口号
cp -r target/lib /www/wwwroot/mblog/lib
cp target/mblog-4.0.0.jar $APP_PATH/$APP_NAME
nohup java -jar $APP_PATH/$APP_NAME --spring.profiles.active=pro >> $LOG_PATH/$LOG_NAME 2>&1 &
fi
脚本需要注意的地方
jenkins 【post build task】下的脚本,当前操作的目录在:~/.jenkins/workspace/任务名称下。
java -jar $APP_NAME 可以加属性参数,如端口号、应用名称、环境选择等。
上述的脚本,当程序以及运行时,会自动把已启动的程序停止,然后重新运行程序(也是程序重新发布的操作)。
$LOG_PATH 为输出日志,可自己定义输出文件的位置。
然后点击保存。
回到首页,再次点击构建,等待构建成功。
之后我们每次修改了代码,只需要将代码上传到 gitee 中,然后在 jenkins 中点击构建,即可实现重新发布项目。
注意:本文归作者所有,未经作者允许,不得转载