最近公司在利用jenkins自动部署springboot应用,以前别人配的那个jenkins虽说可以正常部署,但是多次反复部署之后jenkins会报错,提示内存不足:
Maven JVM terminated unexpectedly with exit code 137
原因是因为jenkins没有配置部署新的应用前先把旧的应用进程先kill掉而导致在服务器上有多个应用进程。因此自己决定摸索如何配置jenkins可以每次部署都把旧进程kill掉再启动新进程。
一、首先需要先配置好jenkins的基本配置,这些就不在这里一一详述了,只写一个Publish over SSH的
1、先安装好该插件 :Publish over SSH
2、配置如下:

点开下面的高级配置登录linux服务器的密码。
2、然后就是配置部署项目的东西了。
配置从源码库拉取代码:

构建环境中勾选,代码构建的过程中会将日志打印出来

Pre Steps和Build:

Post Steps:

Exec command中是要通过SSH去服务器上执行的脚步以及脚本文件;
Source files配置:target/xxx-0.0.1-SNAPSHOT.jar 项目jar包名
Remove prefix:target/
Remote directory: 代码应用服务器的目录地址,
Exec command:应用服务器对应的脚本。
以下是脚本文件内容:
stop.sh
#!/bin/bash
echo "stop SpringBoot BAppApiServerApplication"
pid=`ps -ef | grep ejoyst-bappapi-gateway.jar | grep -v grep | awk '{print $2}'`
echo “旧应用进程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 "授权当前用户"
chmod 777 /opt/deploy/ejoyst-bappapi-gateway.jar
echo "执行...."
cd /opt/deploy/
nohup ${JAVA_HOME}/bin/java -jar ejoyst-bappapi-gateway.jar > /dev/null &
echo "启动成功"
构建后操作中 配置Archive the artifacts:内容是当前构建应用的jar包或者war包的相对路径,

这样可以在部署成功页面看到,可以直接点击下载:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
继续阅读与本文标签相同的文章
下一篇 :
mysql 8.0.11 安装步骤详解
-
Java线程篇
2026-05-16栏目: 教程
-
NAS日志管理使用指南
2026-05-16栏目: 教程
-
硬核!奇点云一举斩获人工智能编程大赛一等奖、三等奖!
2026-05-16栏目: 教程
-
【应用案例】正泰新能源:AI图像质检全面应用技术解读,做到瑕疵 1秒现身
2026-05-16栏目: 教程
-
在线教育平台体验如何优化?视频云R系产品来了
2026-05-16栏目: 教程
