御坂主机 发表于 2024-7-6 15:40:25

使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行

本帖最后由 御坂主机 于 2024-7-6 16:09 编辑

1. 概述

在现代软件开发中,持续集成和持续部署(CI/CD)已经成为必不可少的一部分。Jenkins作为开源的自动化服务器,可以帮助我们实现从代码提交到自动部署的一系列流程。本文将介绍如何使用Jenkins结合SVN和Spring Boot实现自动构建jar包并在服务器上运行。

1.1 为什么选择Jenkins

Jenkins是目前最流行的CI/CD工具,具有以下优势:

(1) 开源免费,社区活跃。
(2) 插件丰富,几乎可以集成所有常见的开发工具和服务。
(3) 配置灵活,可以根据实际需求进行高度定制化。

2. 环境准备

在开始之前,需要确保以下环境已经搭建完毕:

(1) Jenkins已经安装并运行。
(2) SVN服务器已经搭建并存有Spring Boot项目的代码。
(3) 目标服务器上已安装JDK和Maven。

3. 配置Jenkins

3.1 安装必要插件

在Jenkins中安装以下插件:

(1) Subversion Plugin:用于拉取SVN代码。
(2) Maven Integration Plugin:用于构建Maven项目。
(3) SSH Plugin:用于通过SSH将文件传输到远程服务器并执行命令。

3.2 新建Jenkins任务

在Jenkins中创建一个新的Freestyle项目,命名为`SpringBoot-AutoBuild`。

3.3 配置源码管理

在“源码管理”部分,选择“Subversion”并填写SVN仓库的URL和凭证。

3.4 配置构建触发器

选择“构建触发器”中的“轮询SCM”,设置轮询频率。例如,每5分钟检查一次代码变动:

H/5 * * * *

3.5 配置构建环境

选择“Provide Node & npm bin/ folder to PATH”,确保Jenkins能够找到Maven的执行路径。

3.6 配置构建步骤

添加一个“Invoke top-level Maven targets”构建步骤,设置如下:

Goals: clean package

3.7 配置构建后操作

添加“Send build artifacts over SSH”步骤,配置远程服务器信息,将构建生成的jar包传输到目标服务器。

4. 配置目标服务器

在目标服务器上,确保以下目录结构:

/opt/springboot-apps/
|-- app.jar
|-- start.sh
|-- stop.sh

4.1 编写启动脚本

在`/opt/springboot-apps/`目录下创建`start.sh`脚本:

#!/bin/bash
nohup java -jar /opt/springboot-apps/app.jar > /opt/springboot-apps/app.log 2>&1 &

4.2 编写停止脚本

在`/opt/springboot-apps/`目录下创建`stop.sh`脚本:

#!/bin/bash
pid=$(ps -ef | grep app.jar | grep -v grep | awk '{print $2}')
if [ -n "$pid" ]; then
kill -9 $pid
fi

5. 完成Jenkins配置

在Jenkins中,继续添加“Execute shell”构建后操作步骤,配置如下:

ssh user@remote_server 'bash /opt/springboot-apps/stop.sh && bash /opt/springboot-apps/start.sh'

6. 测试自动构建和部署

提交代码到SVN仓库,等待Jenkins轮询触发构建任务。观察构建日志,确认jar包成功构建并传输到目标服务器。检查目标服务器上的日志,确认Spring Boot应用正常启动。

7. 总结

本文详细介绍了如何使用Jenkins结合SVN和Spring Boot实现自动构建jar包并在服务器上运行的全过程。通过这样的自动化流程,可以大大提高开发和部署的效率,减少人为错误,提高系统的稳定性。希望本文的内容能够帮助大家更好地理解和使用Jenkins进行CI/CD操作。





------------------------------------------------------------------------------------------------------------------------------------------
========御 坂 主 机========
>> VPS主机 服务器 前沿资讯 行业发布 技术杂谈 <<
>> 推广/合作/找我玩TG号 : @Misaka_Offical <<
-------------------------------------------------------------------------------------------------------------------------------------------
页: [1]
查看完整版本: 使用Jenkins + svn + springboot自动构建jar包并自动打包在服务器上运行