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

本文涉及的产品
应用实时监控服务-应用监控,每月50GB免费额度
可观测可视化 Grafana 版,10个用户账号 1个月
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 本文介绍了使用Jenkins和WinSW实现SpringBoot项目自动化部署的完整流程。首先讲解了Jenkins作为持续集成工具的作用,然后详细说明了环境准备步骤:包括JDK版本管理、WinSW服务配置(含XML文件修改)以及bat启动脚本编写。重点演示了Jenkins的项目配置方法,包括源码管理设置和构建步骤中的Windows批处理命令调用。通过这套方案,开发者只需推送代码到Git仓库,即可触发Jenkins自动完成项目构建、服务重启等全流程,显著提升部署效率。文章还提到IDEA的Jenkins插件可进

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

这里有:

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

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

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

目录

一、简介

二、什么是Jenkins

三、环境准备

3.1 Jenkins

3.2 WinSW

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版本覆盖,然后就可以直接通过直接定位文件的方式进行启动。

 

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

image.gif

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

image.gif 编辑

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

3.2 WinSW

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

(下载链接),将其放到SpringBoot项目根目录下,然后将其更改为你想使用的名字(比如(test.exe)),将sample-minimal.xml修改为和test.exe名称一致(test.exe就修改为test.xml),将test.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>

image.gif

  • id:服务的ID
  • name:服务名称
  • executable:命令,这是jar包所以用jar。(也可是npm或其它启动)
  • arguments:命令参数
  • logpath:日志文件位置
  • description:服务介绍

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

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

3.3 bat启动脚本

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

@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

image.gif

这里的需要和实际部署的操作系统路径对应,应为是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,如下图:

image.gif 编辑

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

image.gif 编辑

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

@echo off
setlocal enabledelayedexpansion
./run.bat
exit /b 0

image.gif

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

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

image.gif 编辑

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

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

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

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

image.gif 编辑

目录
相关文章
|
3月前
|
Java jenkins 应用服务中间件
结合Jenkins与Tomcat,实施Maven项目的自动构建和部署流程。
任何项目构建和部署的自动化流程,总离不开对各个环节精细把控与密切配合。涉及到源代码管理、构建工具、持续集成服务器以及最终的运行时环境的协调。通过上述简洁实用的步骤,可以实现Maven项目从源代码到运行状态的无缝过渡,进而提升软件开发的效率与质量。
277 0
|
jenkins Java 持续交付
运用Jenkins实现Java项目的持续集成与自动化部署
在新建的Jenkins Job中,我们需要配置源码管理,通常选择Git、SVN等版本控制系统,并填入仓库地址和凭据。接着,设置构建触发器,如定时构建、轮询SCM变更、GitHub Webhook等方式,以便在代码提交后自动触发构建过程。
494 2
|
Java jenkins 持续交付
Java项目jar包启动脚本,适用jenkins或定时任务或手动执行
Java项目jar包启动脚本,适用jenkins或定时任务或手动执行
512 3
|
jenkins 网络安全 持续交付
新的centos7.9安装docker版本的jenkins2.436.1最新版本-后端项目发布(四)
新的centos7.9安装docker版本的jenkins2.436.1最新版本-后端项目发布(四)
240 3
|
自然语言处理 jenkins 测试技术
Jenkins适合什么样的项目
【10月更文挑战第18天】Jenkins适合什么样的项目
176 3
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
303 0
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
582 0
|
jenkins 测试技术 持续交付
Jenkins 在多分支项目中的应用
【8月更文第31天】在现代软件开发实践中,分支管理是一项至关重要的策略,它允许开发团队在不同的功能开发、修复bug或进行实验时不会干扰主干代码。随着项目的复杂度增加,维护多个分支并确保它们的质量变得越来越具有挑战性。Jenkins 作为一款流行的持续集成(CI)和持续部署(CD)工具,提供了强大的功能来支持多分支项目的自动化测试和部署。本文将探讨 Jenkins 如何帮助管理多分支项目,并提供具体的代码示例。
382 0
|
jenkins Java Shell
jenkins学习笔记之十三:配置SonarScanner扫描Java项目
jenkins学习笔记之十三:配置SonarScanner扫描Java项目
|
jenkins Java 持续交付
自动化魔法:用Jenkins打造Java项目的持续部署流水线
【8月更文挑战第13天】在软件开发中,自动化部署是提高效率与减少错误的关键。Jenkins作为一款强大的持续集成工具,支持Java项目的自动化构建、测试与部署。通过配置Jenkins及其丰富的插件生态(如Git和Maven插件),可实现从代码提交到上线的全自动化流程。此流程包括从GitHub自动拉取代码、使用Maven构建项目,并通过如`mvn clean install`命令执行构建,最后利用插件如“Publish Over SSH”将制品部署至远程服务器。此外,还可配置邮件通知等后处理动作确保发布的稳定可靠。借助Jenkins,开发者能显著加速软件交付周期,同时减少手动操作带来的风险。
497 0

推荐镜像

更多