使用Jenkins完成springboot项目快速更新

✨重磅!盹猫的个人小站正式上线啦~诚邀各位技术大佬前来探秘!✨

这里有:

  • 硬核技术干货:编程技巧、开发经验、踩坑指南,带你解锁技术新姿势!
  • 趣味开发日常:代码背后的脑洞故事、工具测评,让技术圈不再枯燥~
  • 独家资源分享:开源项目、学习资料包,助你打怪升级快人一步!

👉 点击直达→ 盹猫猫的个人小站 👈

🌟 来逛逛吧,说不定能挖到你正在找的技术宝藏哦~

目录

一、简介

二、什么是Jenkins

三、环境准备

[3.1 Jenkins](#3.1 Jenkins)

[3.2 WinSW](#3.2 WinSW)

[3.3 bat启动脚本](#3.3 bat启动脚本)

四、配置步骤


欢迎来到 盹猫(>^ω^<)的博客

本篇文章主要介绍了

**使用Jenkins完成springboot项目快速更新​**

❤博主广交技术好友,喜欢文章的可以关注一下❤

一、简介

在应用程序开发过程中,作为进行JAVA开发的后端,在window10系统服务器上(别问,我也不知道为啥装win10)上部署和更新文件时需要频繁的上传和运行脚本指令,这会浪费项目开发的具体时间,而且会增加项目管理的难度。本篇文章就介绍如何使用Jenkins和WinSw配合git完成SpringBoot项目的快速更新,也是对部署流程进行记录。

二、什么是Jenkins

Jenkins 是一个开源的自动化服务器(原名为 Hudson),核心功能是通过自动化流程简化软件开发中的持续集成(CI)和持续交付(CD)过程。它支持跨平台部署(Windows/macOS/Linux),并通过插件机制扩展功能,几乎可适配任何软件开发流程。

三、环境准备

3.1 Jenkins

通过官方的下载链接 进行下载,我们选择War包进行下载,一定要注意,官网提供的是最新版的jenkins,他只能在JDK17和JDK21环境中运行。那如果编码时使用的是JDK8版本或其它版本怎么办呢?

我们可以通过在系统中安装多个JDK版本,但要注意不要安装在相同的目录,这样会进行JDK版本覆盖,然后就可以直接通过直接定位文件的方式进行启动。

bash 复制代码
E:\jdk21\bin>java -jar -Dfile.encoding=UTF-8 C:\Users\Administrator\Desktop\jar包\jenkins.war --prefix=/vjenkins/

比如这里直接在bin文件夹内输入(也可以在其它位置输入全路径方式启动),启动后会出现下述界面。

如果你是刚刚安装后的启动,会显示一段密钥,在第一次访问时进行输入,然后设置登录密码。

3.2 WinSW

从GitHub上下载适合系统架构WinSW程序和

sample-minimal.xmlhttps://github.com/winsw/winsw/releases/download/v2.12.0/sample-minimal.xml(下载链接),将其放到SpringBoot项目根目录下,然后将其更改为你想使用的名字(比如(test.exe)),将sample-minimal.xml修改为和test.exe名称一致(test.exe就修改为test.xml),将test.xml内容修改为以下内容:

XML 复制代码
<service>
  <id>test</id>
  <name>test</name>
  <executable>java</executable>
  <!-- 指定JAR的绝对路径 -->
  <arguments>-jar "./target/test-1.0-SNAPSHOT.jar" --server.port=8187</arguments>
  <!-- 日志目录配置 -->
  <logpath>./logs</logpath>
  <description>This is a test service</description>
</service>
  • id:服务的ID
  • name:服务名称
  • executable:命令,这是jar包所以用jar。(也可是npm或其它启动)
  • arguments:命令参数
  • logpath:日志文件位置
  • description:服务介绍

上述命令根据实际需要进行编写,这样WinSW就配置好了。

其它环境如JDK、GIT命令是肯定要有的,相关教程很多,这里不进行安装配置流程介绍。

3.3 bat启动脚本

我们需要一个run.bat脚本来执行服务的停止,重新打包,安装服务,启动服务操作,同样可以放在springboot项目根目录之下,内容如下:

bash 复制代码
@echo off
setlocal enabledelayedexpansion

:: Configuration parameters
set SERVICE_NAME=test
set WINSW_EXE=test.exe
set MAVEN_HOME=E:\maven\apache-maven-3.8.9
set LOG_FILE=deploy_log.log

:: Record start time
echo [%time%] Deployment process started >> %LOG_FILE%

:: Stop existing service
echo [%time%] Stopping the service... >> %LOG_FILE%
net stop %SERVICE_NAME% 2>nul
if %errorlevel% equ 0 (
    echo [%time%] Service stopped successfully >> %LOG_FILE%
) else (
    echo [%time%] Service not running or failed to stop >> %LOG_FILE%
)

:: Uninstall old service
echo [%time%] Uninstalling old service... >> %LOG_FILE%
%WINSW_EXE% uninstall
if %errorlevel% neq 0 (
    echo [%time%] Warning: Failed to uninstall old service (possibly not installed) >> %LOG_FILE%
)

:: Maven package
echo [%time%] Executing Maven package... >> %LOG_FILE%
call @%MAVEN_HOME%\bin\mvn clean package
if %errorlevel% neq 0 (
    echo [%time%] Error: Maven package failed! >> %LOG_FILE%
    exit /b 1
)
echo [%time%] Maven package successful >> %LOG_FILE%

:: Install new service
echo [%time%] Installing new service... >> %LOG_FILE%
%WINSW_EXE% install
if %errorlevel% neq 0 (
    echo [%time%] Error: Service installation failed! >> %LOG_FILE%
    exit /b 1
)
echo [%time%] Service installed successfully >> %LOG_FILE%

:: Start service
echo [%time%] Starting the service... >> %LOG_FILE%
net start %SERVICE_NAME%
if %errorlevel% neq 0 (
    echo [%time%] Error: Service failed to start! >> %LOG_FILE%
    exit /b 1
)
echo [%time%] Service started successfully >> %LOG_FILE%

:: Completion
echo [%time%] Deployment process completed >> %LOG_FILE%
exit /b 0

这里的需要和实际部署的操作系统路径对应,应为是Springboot项目所以使用Maven进行打包操作。

set SERVICE_NAME=test

set WINSW_EXE=test.exe

set MAVEN_HOME=E:\maven\apache-maven-3.8.9

set LOG_FILE=deploy_log.log

上述参数可以根据实际配置进行修改。

四、配置步骤

然后登录jenkins进行系统流程配置,首先需要新建一个Item进行管理,可以直接创建一个Freestyle Project,如下图:

在新建的项目中点击配置按钮进行配置界面,在源码管理中可以对项目的git地址进行配置(如果有是似有项目则需要创建Credentials认证),输入需要进行自动化部署的分支。效果如下:

在Build Steps(机构步骤中)创建一个Execute Windows batch command(bat脚本)步骤,我们需要调用我们上面已经在项目根目录中的启动脚本。内容如下:

bash 复制代码
@echo off
setlocal enabledelayedexpansion

./run.bat

exit /b 0

点击应用和保存。在项目页面中点击Build按钮Jenkins就会从仓库拉取我们的项目,然后运行脚本打包部署运行了。

这样以后的开发工作就简单多了,只需要将项目在推送到git上,然后通过jenkins(可以进行端口访问)进行打包运行。

而且idea还可以安装Jenkins插件(上图插件)在IDEA中进行控制远程打包和运行,简直是后端开发部署必备工具。

赶紧去试一下吧,如果在部署过程中有什么问题欢迎在评论区留言。

如果你对区块链 内容感兴趣可以查看我的专栏:小试牛刀-区块链

感谢您的关注和收藏!!!!!!

相关推荐
ldj202025 分钟前
Jenkins 部署脚本
jenkins
你想考研啊26 分钟前
三、jenkins使用tomcat部署项目
运维·tomcat·jenkins
好奇的菜鸟1 小时前
如何在IntelliJ IDEA中设置数据库连接全局共享
java·数据库·intellij-idea
tan180°1 小时前
MySQL表的操作(3)
linux·数据库·c++·vscode·后端·mysql
代码老y1 小时前
Docker:容器化技术的基石与实践指南
运维·docker·容器
典学长编程1 小时前
Linux操作系统从入门到精通!第二天(命令行)
linux·运维·chrome
DuelCode2 小时前
Windows VMWare Centos Docker部署Springboot 应用实现文件上传返回文件http链接
java·spring boot·mysql·nginx·docker·centos·mybatis
优创学社22 小时前
基于springboot的社区生鲜团购系统
java·spring boot·后端
why技术2 小时前
Stack Overflow,轰然倒下!
前端·人工智能·后端
幽络源小助理2 小时前
SpringBoot基于Mysql的商业辅助决策系统设计与实现
java·vue.js·spring boot·后端·mysql·spring