03-MAVEN项目的发布
本文详细介绍了基于Gitlab、Jenkins和SpringBoot的后端项目自动化部署流程。首先在Gitlab创建项目仓库,使用IDEA开发SpringBoot应用并推送代码。Jenkins服务器配置JDK和Maven环境后,通过Git拉取代码并构建项目,最后利用SSH插件将构建产物推送到应用服务器。应用服务器需安装匹配的JDK环境,Jenkins会自动执行部署命令启动应用。整个过程实现了从代码
服务器资源与角色
| 身份 | 角色 | ip | 版本 |
|---|---|---|---|
| 服务器 | Gitlab | 10.0.0.133 | Rocky Linux 9 |
| 服务器 | Jenkins | 10.0.0.134 | Rocky Linux 9 |
| 服务器 | APP | 10.0.0.137 | Rocky Linux 9 |
| 中间件 | JDK | - | OpenJDK 17 |
| 中间件 | Maven | - | 3.6.3 |
| 中间件 | Git | - | 2.47.3 |
后端代码一般都是用spring boot框架编写,用maven来构建的
先从最简单的后端代码开始。
首先我们理一下思路与步骤:
1、 Gitlab创建项目仓库
2、 开发编写代码并上传到Gitlab仓库
2、 Jenkins拉取代码文件并用maven构建
3、 Jenkins将拉取到本地的代码文件推送到后端服务器指定目录
4、 后端服务器启动项目
一、Gitlab配置项目
1.创建仓库myapp
-
按照之前的配置在Gitlab创建maven项目仓库myapp
-
我们需要记住这里的
Git本地设置
| 创建仓库 |
|---|
![]() |
2.idea编写并推送代码
这里idea使用的是 2025.2.5 (Ultimate Edition) 版本,开发环境需要按照项目要求安装好jdk、maven等并配置好
- 开发环境配置
-
要将代码推送到Gitlab仓库,首先需要保证开发环境本地有git命令
- idea创建springboot项目
-
打开idea点击新建项目,此处jdk版本需要与后续Jenkins服务器安装一致
| 创建项目 |
|---|
![]() |
![]() |
- 编写代码
-
在myapp项目中,按以下路径:
/myapp/src/main/java/com.pangle.myapp/,此处最后一层目录com.pangle.myapp是新建项目时的软件包名字 -
在该路径下新建一个
controller层的类,右键com.pangle.myapp目录,点击新建java类,写入controller.TestController回车 -
在
TestController.java类中写入以下代码
package com.pangle.myapp.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController {
@GetMapping("/test")
public String test(){
return "myapp后端页面 --v1.0.0";
}
}
| idea编写代码 |
|---|
![]() |
- 本地测试
-
在完成代码编写后,我们点击右上角运行,然后在浏览器访问
http://localhost:8080/test,看到返回的预设信息myapp后端页面 --v1.0.0,本地测试通过
| 本地测试 |
|---|
![]() |
- 推送代码
-
配置远程仓库:点击idea右上角版本控制,在当前路径下创建git仓库,等同于git中
init过程 -
配置远程仓库信息,idea中点击
Alt + F12组合键打开终端,输入Gitlab创建的myapp仓库的Git本地设置 -
点击提交:左侧右键myapp目录,依次选择
Git -> 提交目录 -
将所有文件都勾选,编辑好配置信息,配置好远程仓库路径的等信息后提交
-
在Gitlab中的myapp项目即可看到相关文件
| 推送代码 |
|---|
![]() |
![]() |
![]() |
![]() |
![]() |
二、Jenkins配置任务
首先,我们明确Jenkins服务器任务
1、 去Gitlab仓库拉取代码到本地,需要安装Git
2、 本地构建后端项目,需要安装maven
3、 推送到后端App服务器,需要账户密码登录
1.全局配置
-
在服务器安装maven
# 安装maven
yum install -y maven
# 验证
mvn --version
Jenkins全局配置jdk、maven路径
# 得到maven、jdk的命令路径
[root@Jenkins-~]# which mvn
/usr/bin/mvn
[root@Jenkins-~]# which java
/usr/bin/java
-
此处一般是安装时默认配置的软连接,一直查看软连接路径最终可得到具体路径,去掉
/bin之后的路径就是二者所在目录
[root@Jenkins-~]# ll /usr/bin/java
lrwxrwxrwx 1 root root 22 1月 20 22:33 /usr/bin/java -> /etc/alternatives/java
[root@Jenkins-~]# ll /etc/alternatives/java
lrwxrwxrwx 1 root root 62 2月 8 15:27 /etc/alternatives/java -> /usr/lib/jvm/java-17-openjdk-17.0.18.0.8-1.el9.x86_64/bin/java
[root@Jenkins-~]# ll /usr/bin/mvn
lrwxrwxrwx 1 root root 21 2月 8 15:27 /usr/bin/mvn -> /etc/alternatives/mvn
[root@Jenkins-~]# ll /etc/alternatives/mvn
lrwxrwxrwx 1 root root 24 2月 8 15:27 /etc/alternatives/mvn -> /usr/share/maven/bin/mvn
-
在Jenkins页面点击
Jenkins主页右上角系统管理->全局工具配置 -
在
JDK安装中选择新增JDK,别名随意命名,这里命名为jdk,JAVA_HOME填入的就是之前得到的去掉/bin的目录 -
在
Maven 安装中选择新增MAVEN,别名随意命名,这里命名为maven,MAVEN_HOME填入的就是之前得到的去掉/bin的目录 -
这两步记得取消勾选自动安装
-
此处如果写错路径或者路径名错误,Jenkins都会在页面提示
| 全局配置 |
|---|
![]() |
![]() |
2.拉取、构建代码
主页新建任务,选择自由风格的项目,命名为
myapp
源码管理与之前一样,选择Git方式,并填入Gitlab远程仓库myapp项目的http路径
在
Build Steps中增加构建步骤,选择调用顶层MAVEN目标
Maven 版本选择为之前全局配置自定义的别名
目标就是maven构建项目的命令:
clean package -DskipTests
| 构建项目 |
|---|
![]() |
-
我们可以构建一次查看控制台输出验证配置是否正确,首次构建maven会下载相关依赖,可能耗时较长
-
我们也可以进入Jenkins构建目录,发现这里生成了一个target目录,这就是构建后jar包所在路径,可以找到构建好的jar包
myapp-0.0.1-SNAPSHOT.jar
| 构建项目 |
|---|
![]() |
![]() |
3.推送代码
- 推送前配置
-
在本地构建好代码后,就需要将构建好的jar包推送到后端服务器,这里我们使用Publish Over SSH插件,可以使用这个插件配置连接指定服务器,并执行相关命令、
-
在Jenkins
系统管理->插件管理中Available plugins搜索Publish Over SSH插件并安装 -
在Jenkins
系统管理->系统设置中,拉到最下边可以看到该插件提供的相关设置,点击新增,添加后端服务器相关信息-
Name自定义,作为服务器在Jenkins中的标识
-
Hostname为目标服务器IP
-
Username为登录用户名
-
Remote Directory为登录目标服务器后的工作目录,如果该目录不存在,则需要去目标服务器手动创建
-
-
点击高级,勾选
Use password authentication, or use a different key,在Passphrase / Password填写登录用户名对应的密码
| 推送代码 |
|---|
![]() |
-
当我们配置好目标服务器信息,创建好目录后,点击最下边
Test Configuration后无任何错误信息就是配置成功,点击应用后保存
- 推送配置
-
在myapp任务配置中下拉,找到
构建后操作点击增加构建后操作步骤选择Send build artifacts over SSH -
在SSH Server中,
Name选择我们之前在系统设置中配置的目标服务器名称-
Transfer Set中Source files代表将Jenkins所在服务器那些文件复制到目标服务器,这里我们选择将当前路径下target路径中的jar包:target/*.jar -
Exec command为复制后需要在目标服务器执行的命令,这里我们进入目标目录cd /usr/local/myapp/target写入jar包执行命令nohup java -jar myapp-0.0.1-SNAPSHOT.jar > app.log 2>&1 &
-
| 推送配置 |
|---|
![]() |
-
此时推送配置已经完成,但是并不能构建,因为目标服务器还没有运行项目的环境
三、Application服务器配置
1.环境配置
-
要运行构建好的java代码,需要有jdk环境,这里的jdk安装版本,需要与开发环境、Jenkins服务器安装的都一致
# 下载jdk
yum install -y java-17-openjdk.x86_64
# 验证
[root@Application-~]# java -version
openjdk version "17.0.18" 2026-01-20 LTS
OpenJDK Runtime Environment (Red_Hat-17.0.18.0.8-1) (build 17.0.18+8-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-17.0.18.0.8-1) (build 17.0.18+8-LTS, mixed mode, sharing)
2.启动项目
-
回到Jenkins页面myapp任务中,点击左侧
立即构建,然后查看控制台输出 -
我们在目标服务查看java进程,可以发现启动成功,端口8080也已被java进程监听
| 启动项目 |
|---|
![]() |
![]() |
3.访问项目
-
在浏览器输入后端服务器ip+端口,再带上测试接口
http://10.0.0.137:8080/test,看到与本地测试时一致的页面即为通过Jenkins发布成功
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐






















所有评论(0)