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

为了使用Jenkins自动构建Spring Boot项目并在服务器上运行,你需要完成以下步骤:

  1. 安装Jenkins和配置。
  2. 安装Subversion(SVN)客户端。
  3. 在Jenkins中配置一个新的作业,并设置源代码管理为Subversion。
  4. 配置构建触发器和构建环境。
  5. 在构建环境中,添加执行Shell脚本的步骤,用于编译项目并打包Spring Boot JAR。
  6. 使用SSH Send Files插件或SSH Slaves插件将JAR包复制到远程服务器。
  7. 在远程服务器上,编写一个启动脚本,用于启动Spring Boot应用程序。
  8. 配置远程服务器上的定时任务或者直接通过SSH执行启动脚本。

以下是Jenkins的配置步骤和相关Shell脚本示例:

Jenkins配置步骤:

  1. 安装Jenkins和SVN。
  2. 在Jenkins中创建一个新的作业。
  3. 在源代码管理部分,填写SVN仓库的URL。
  4. 在构建触发器中,选择适合你的触发条件(如定时或者提交代码时)。
  5. 在构建环境中,配置环境变量。
  6. 添加构建步骤,选择执行shell。
  7. 在Shell脚本中编写构建和打包命令。
  8. 安装SSH Send Files插件,并配置远程服务器的连接信息。
  9. 添加Send Files步骤,指定要发送的文件和目标服务器。
  10. 在远程服务器上配置定时任务或者SSH直接执行启动脚本。

Shell脚本示例:




#!/bin/bash
# 清理工作空间
rm -rf /var/lib/jenkins/workspace/your-job-name/*
 
# 从SVN更新代码
svn update /var/lib/jenkins/workspace/your-job-name
 
# 构建Spring Boot项目
cd /var/lib/jenkins/workspace/your-job-name
mvn clean package
 
# 复制JAR到远程服务器
scp target/your-app.jar user@remote-server:/path/to/your/app.jar
 
# 在远程服务器上启动应用程序
ssh user@remote-server /path/to/your/start-app.sh

start-app.sh脚本示例:




#!/bin/bash
cd /path/to/your/
nohup java -jar /path/to/your/app.jar > /path/to/your/app.log 2>&1 &

确保Jenkins具有执行SVN更新、编译和复制文件的权限,同时远程服务器上的相关目录权限也应当设置正确。此外,SSH连接需要配置免密登录,以便Jenkins能自动化执行这些步骤。

最后修改于:2024年08月16日 11:11

评论已关闭

推荐阅读

DDPG 模型解析,附Pytorch完整代码
2024年11月24日
DQN 模型解析,附Pytorch完整代码
2024年11月24日
AIGC实战——Transformer模型
2024年12月01日
Socket TCP 和 UDP 编程基础(Python)
2024年11月30日
python , tcp , udp
如何使用 ChatGPT 进行学术润色?你需要这些指令
2024年12月01日
AI
最新 Python 调用 OpenAi 详细教程实现问答、图像合成、图像理解、语音合成、语音识别(详细教程)
2024年11月24日
ChatGPT 和 DALL·E 2 配合生成故事绘本
2024年12月01日
omegaconf,一个超强的 Python 库!
2024年11月24日
【视觉AIGC识别】误差特征、人脸伪造检测、其他类型假图检测
2024年12月01日
[超级详细]如何在深度学习训练模型过程中使用 GPU 加速
2024年11月29日
Python 物理引擎pymunk最完整教程
2024年11月27日
MediaPipe 人体姿态与手指关键点检测教程
2024年11月27日
深入了解 Taipy:Python 打造 Web 应用的全面教程
2024年11月26日
基于Transformer的时间序列预测模型
2024年11月25日
Python在金融大数据分析中的AI应用(股价分析、量化交易)实战
2024年11月25日
AIGC Gradio系列学习教程之Components
2024年12月01日
Python3 `asyncio` — 异步 I/O,事件循环和并发工具
2024年11月30日
llama-factory SFT系列教程:大模型在自定义数据集 LoRA 训练与部署
2024年12月01日
Python 多线程和多进程用法
2024年11月24日
Python socket详解,全网最全教程
2024年11月27日