Jenkins系列之——第五章 Jenkins编译一个Spring Boot项目并通过SSH推送到远程

本文介绍如何使用Jenkins配合PublishOverSSH插件部署SpringBoot项目,并通过Shell脚本实现项目的自动化启动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一章讲了发布一个项目到远程的Tomcat上,但是随着现在微服务Spring Cloud的热度很多小伙伴们都转向了Spring Boot。本章就介绍一下如何部署一个Spring Boot项目并通过脚本方式启动

本章需要用到的插件:Publish Over SSH 安装完成之后我们先配置SSH 路径 系统管理>系统设置>Publish over SSH


新增一个SSH Servers


Name:名字 随便取

Hostname:主机地址

Username:用户名

Remote Directory:根目录(这里就决定了把jar上传到哪里)

你会发现没有密码,点高级然后勾选这个

然后就出现密码了


完整的配置如下 其他参数根据你的需要自己配置


到这里SSH的配置就结束了 接下来还是新建一个Job 选择一个Spring Boot应用

在Post Steps中选择


然后出现一个页面 如下


Name:选择你配置好的SSh Server

Source files:jar所在地址

Remove prefix:需要移除的前缀 我们只需要jar 所有把target移除了

Remote directory:文件上传的位置 这里和SSH中的Remote Directory有关系 如果SSH中配置的是/home/run/ 这里配置的是/develop/

那么最终文件会在/home/run/develop/中

Exec command:shell命令 这里我的脚本命令含义未杀掉之前在运行的这个应用的进程然后重启

source /etc/profile
project=你的应用名
dir=你应用存放的目录
pid=`ps -ef | grep $dir$project | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
   kill -9 $pid
fi
nohup java -Xms64m -Xmx512m -XX:PermSize=32m -XX:MaxPermSize=512m -jar $dir$project --spring.profiles.active=dev >/dev/null 2>&1&
然后保存 然后构建 本章Over

### 使用 Jenkins 实现 CI/CD 自动化部署的最佳实践 #### 1. 安装与基本配置 为了实现 CI/CD 的自动化部署,首先需要确保 Jenkins 已经正确安装进行了基础配置。这包括但不限于安装必要的插件以及设置全局工具路径等[^3]。 #### 2. 集成版本控制系统 Jenkins 支持多种版本控制工具的集成,其中最常见的是 Git 和 SVN。通过配置项目的源码管理部分,可以让 Jenkins 自动从远程仓库拉取最新代码。如果使用的是 GitLab,则可以通过 Webhook 或者定时轮询的方式让 Jenkins 在检测到代码变更时自动触发构建任务。 #### 3. 构建阶段 在构建过程中,可以根据项目的需求执行不同的命令或者调用预定义好的 Shell 脚本来完成编译、打包等工作。对于 Java 单体项目或是微服务架构下的 Spring Boot 应用来说,通常会利用 Maven 或 Gradle 来处理依赖管理和生成可运行的 JAR 文件[^2]。 以下是针对 Spring Boot 项目的简单示例脚本: ```bash #!/bin/bash mvn clean package -DskipTests=true cp target/*.jar /path/to/deploy/ ``` #### 4. 测试环节 测试是保障软件质量的重要手段之一,在 CI/CD 管道中加入单元测试、接口测试甚至性能测试能够有效减少生产环境中出现问题的概率。Maven 提供了内置的支持用于运行基于 JUnit 或 TestNG 编写的测试案例;而对于前端 Vue.js 类型的应用则可能需要用到 Karma 或 Jest 这样的框架来进行相应的功能验证[^4]。 #### 5. 部署至目标环境 最后一步就是把经过前面几步验证无误后的产物推送到实际使用的服务器上替换掉旧版文件从而达到更新的目的。考虑到不同操作系统之间可能存在差异性较大情况(比如 Linux vs Windows),所以这里建议编写跨平台兼容性强一点的通用脚本以便重复利用。 例如下面这个适用于大多数 Unix-like OS 平台的例子展示了如何将 WAR/JAR 发布到 Tomcat 下面作为 webapp 子目录的形式存在: ```bash #!/bin/sh ssh user@remote-server 'mkdir -p ~/temp/app && rm -rf ~/temp/app/*' scp ./target/my-app.jar user@remote-server:~/temp/app/. ssh user@remote-server ' systemctl stop tomcat9; mv ~/temp/app/my-app.jar /var/lib/tomcat9/webapps/; systemctl start tomcat9; ' ``` 以上即为整个流程概述及其对应的一些具体实施细节描述[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘岗强

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值