jenkins+maven+svn实现springboot项目的自动化部署过程
2024-09-01 01:03:24
说明:部署springboot项目的jar
前提(参考:https://www.cnblogs.com/myitnews/p/11493779.html):
- 全局安全配置(前面配置过)
- 全局工具配置(前面配置过)
- 管理插件(根据需要安装插件,前面配置过)
- 已将项目代码提交到SVN仓库。
1. 创建任务
2. 配置项目
(1) General
勾选丢弃旧的构建,选择是否备份被替换的旧包。我这里选择备份最近的10个。
(2) 源码管理
(3) 构建环境
代码构建的过程中会将日志打印出来。
(3) Build
clean install -Dmaven.test.skip=true -Ptest
(4) Post Steps
#!/bin/bash
# /opt/jenkins/deploy/是新建的目录
# 大致意思就是进入目录,stop.sh:停止应用; replace.sh:拷贝应用jar; startup.sh:运行jar
cd /opt/jenkins/deploy/
./stop.sh
./replace.sh
echo "Execute shell Finish" BUILD_ID=dontKillMe nohup /opt/jenkins/deploy/startup.sh &
在/opt/jenkins/deploy/目录下创建startup.sh、stop.sh、replace.sh。
stop.sh、replace.sh和startup.sh内容如下:
stop.sh
#!/bin/bash
# stop.sh
# shelloworld-0.0.1-SNAPSHOT.jar是生成的jar包名称
echo "Stopping SpringBoot"
pid=`ps -ef | grep shelloworld-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}'`
if ["$pid" == ""]
then
echo "helloboot is already stop!"
else
echo "kill -9 的pid:"+$pid
kill -9 $pid
fi
replace.sh
#!/bin/bash
# replace.sh
# HelloWorld 是在Jenkins中创建的任务名称
# /opt/jenkins/project 是新建存放jar包的目录,将Jenkins生成的jar包拷贝到这个目录下
cp /root/.jenkins/workspace/HelloWorld/target/shelloworld-0.0.1-SNAPSHOT.jar /opt/jenkins/project
startup.sh
#!/bin/bash
# startup.sh
java -jar /opt/jenkins/project/shelloworld-0.0.1-SNAPSHOT.jar>log.file 2>&1&
3. 立即构建,查看控制台输出,成功后,浏览器访问。
最新文章
- Spring泛型依赖注入
- CSS实现各种形状
- oracle 行转列、列转行
- C#检测网卡和网络统计信息
- java获取路径的方法
- 【BZOJ-1090】字符串折叠 区间DP + Hash
- MysqlDumpslow
- android重写view和viewgroup的区别
- 向PE文件中添加一个Section
- Android动态布局,并动态为TextView控件设置drawableLeft、drawableRight等属性加入图标
- oracle 索引 。其中全文检索最变态
- tar 压缩和解压缩使用笔记
- 在多机器上远程执行JMeter
- 基于Django rest framework 和Vue实现简单的在线教育平台
- kubernetes 基础命令及操作
- [luogu3369][普通平衡树]
- ubuntu install google-chrome-stable
- TQ2440开发板挂载U盘出现乱码
- The request sent by the client was syntactically incorrect.
- android设备上运行i-jetty服务
热门文章
- [PHP] 阿里云 Composer 全量镜像
- Vue 变异方法splice删除评论功能
- 关于XSS攻击
- 第01组 Beta版本演示
- UOS系统 - 国产统一操作系统UOS的基本知识
- SAS——proc format的其他应用:invalue,picture,default,mult,prefix,noedit,_same_,_error_,other
- 【Python】运算符
- [转载].NET ASP.NET 中web窗体(.aspx)利用ajax实现局部刷新
- C# 多线程处理List数据
- Python - 错误和异常 - 第十九天