Spring Boot & Jenkins 实现自动化部署(centos7&windows,涵盖防jenkins杀死的脚本)
Spring Boot & Jenkins 实现自动化部署(centos7&windows,涵盖防jenkins杀死的脚本)
[toc]
一、安装Jenkins
1 |
|
二、修改配置
1 |
|
三、启动
1 |
|
四、浏览器输入“ip+端口”,配置jenkins
首页
复制提示路径寻找初始密码
1
2//复制密码输入
cat /var/lib/jenkins/secrets/initialAdminPassword直接推荐安装,等待…
创建用户
- 成功安装
五、Jenkins的maven,jdk环境配置
- 在 Manage Jenkins中配置jdk和maven以及系统环境变量
- JDK(取消自动安装填自己的路径)
- MAVEN(取消自动安装填自己的路径)
- 系统环境变量
echo $PATH
查看
- 复制到此
- 安装maven插件,安装后重启
六、新建spring boot 项目
- 新建一个spring boot的demo。
- 随便一个controller
1
2
3
4
5
6
7
8@Controller
public class HelloController {
@RequestMapping("/")
@ResponseBody
public String hello() {
return "Hello, SpringBoot 2";
}
} - 上传到git仓库,我这里上传的是gitee。
七、建立任务并运行
- 新建任务
- 输入项目名称并选择maven项目
- General
- 源码管理,配置git并填写git账号密码。
- 构建触发器
- Build高级中可以修改你的maven配置文件
1
2
3clean install -Dmaven.test.skip -U
//如需要选择分支打包详情参照:https://blog.csdn.net/qq_39231769/article/details/109311606
clean package -P dev - post steps
- 添加一个执行shell,注意修改你的jar包名以及保证路径存在
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34#!/bin/bash
#export BUILD_ID=dontKillMe这一句很重要,这样指定了,项目启动之后才不会被Jenkins杀掉。
export BUILD_ID=dontKillMe
#指定最后编译好的jar存放的位置
www_path=/out
#Jenkins中编译好的jar位置
jar_path=/var/lib/jenkins/workspace/demo/target
#Jenkins中编译好的jar名称
jar_name=demo-0.0.1.jar
#获取运行编译好的进程ID,便于我们在重新部署项目的时候先杀掉以前的进程
pid=$(cat /out/demo.pid)
#进入指定的编译好的jar的位置
cd ${jar_path}
#将编译好的jar复制到最后指定的位置
cp ${jar_path}/${jar_name} ${www_path}
#进入最后指定存放jar的位置
cd ${www_path}
#杀掉以前可能启动的项目进程
kill -9 ${pid}
#启动jar,指定SpringBoot后台启动
nohup java -jar ${jar_name} &
#将进程ID存入到shaw-web.pid文件中
echo $! > /out/demo.pid
- 添加一个执行shell,注意修改你的jar包名以及保证路径存在
- 保存并构建项目
- 构建项目
- 点击构建历史可以看控制台输出
- 访问项目,部署成功
- 附加内容:
windows版安装
- 步骤基本与centos相似,但有几个注意事项;
- 下载地址
- 安装、启动、修改密码过程省略。与centos相似。
- 注意事项 一:配置shell路径为服务器上git目录下的sh.exe文件路径。
- 注意事项二:新增项目时,post steps需要设置为windows的batch
- 注意事项三:执行脚本的不同
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34@echo off
setlocal enabledelayedexpansion
::设置端口
set PORT=8082
:: 设置生成路径
set OLD_PATH=C:\Windows\system32\config\systemprofile\AppData\Local\Jenkins\.jenkins\workspace\gtoa\target
:: 设置新的存放路径
set NEW_PATH=C:\out
:: 设置jar包名
set JAR_NAME=gtoa-0.0.1-SNAPSHOT.jar
::set /p port=Please enter the port :
for /f "tokens=1-5" %%a in ('netstat -ano ^| find ":%PORT%"') do (
if "%%e%" == "" (
set pid=%%d
) else (
set pid=%%e
)
echo !pid!
taskkill /f /pid !pid!
)
::复制文件
XCOPY %OLD_PATH%\%JAR_NAME% "%NEW_PATH%" /y
::防止启动后被杀死进程
set BUILD_ID=dontKillMe
::启动jar包
start javaw -jar %NEW_PATH%\%JAR_NAME%
Spring Boot & Jenkins 实现自动化部署(centos7&windows,涵盖防jenkins杀死的脚本)
http://example.com/20221103164207.html