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。 
- 随便一个controller1 
 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