一、前言

在Java项目开发的日常工作中,传统的手动部署方式一直是困扰开发者的一大痛点。从本地拉取Gitlab最新代码、编译打包、测试校验,再到上传服务器、停止旧服务、重启项目,整套流程繁琐且重复度极高。不仅会耗费大量的开发和运维时间,人工操作的疏漏、环境配置的差异,还经常导致部署失败、线上服务异常等问题,严重影响项目迭代效率。

随着CI/CD持续集成、持续部署理念的普及,通过自动化流水线实现项目一键部署,已经成为后端开发与运维的必备技能。而Jenkins + Java + Gitlab是目前企业中最主流、最稳定、落地性最强的自动化部署组合,能够完美适配绝大多数Java Web、SpringBoot等Java项目的迭代部署场景。

本文将从零出发,完整讲解基于Gitlab代码仓库、Jenkins自动化工具搭建Java项目流水线的全过程,帮大家彻底告别手动打包、手动部署的低效模式,实现代码提交后自动拉取、自动编译、自动部署、自动启动的一键自动化流水线部署,大幅提升项目迭代效率,规范化项目部署流程。

二、前置环境

VM 虚机

Ubuntu 25 可使用清华镜像下载 Index of /ubuntu-releases/25.10/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

之前安装 jenkins 和 部署机器可参考之前的文章,本次只介绍安装gitlab

Jenkins + Java + Maven + SHH 流水线一键部署-CSDN博客

三、开始安装Gitlab

3.1 克隆项目 

项目地址: GitHub - 438083791/jenkins · GitHub

## 切换到超级管理员
sudo -i
	
#切换到根目录
cd /
	
## 如果没装git 安装一下git
apt install git

## 克隆代码 
sudo git clone https://github.com/438083791/jenkins.git /jenkins

3.2 执行安装Gitlab脚本

## 执行安装 gitlab 脚本
sudo bash /jenkins/deploy/01-standalone/install-gitlab.sh

3.3 Gitlab安装成功后会显示登录密码,稍后登录需要用

3.4 访问Gitlab 网站

关闭防火墙或放行 80端口

## 关闭防火墙-正式环境建议仅开放80端口
ufw disable

http://你的gitlab服务器ip/users/sign_in

账号:Root 密码:3.4中返回的密码 或者查看 /etc/gitlab/initial_root_password 文件

3.5 根据提示创建项目和组

组:test

项目:web-test

http://你的gitlab服务器/test/web-test#  项目地址

四、配置Gitlab 和 Jenkins

4.1 创建Gitlab Secret

4.2 在jenkins中配置Gitlab Secret

4.3 推送项目

把 web-test 文件夹中的项目推送至 Gitlab

  生成SSH 并配置在GItlab中(用于推送代码)

## 生成ssh
ssh-keygen -t ed25519

## 查看公钥
cat /root/.ssh/id_ed25519.pub

## 将公钥配置在Gitlab SSH 中

## **** 关键步骤 ****
## 配置完gitlab SHH 测试是否能连同gitlab 
## 让服务器记录你的gitlab登录凭证
ssh -p 2222 git@你的服务器ip

推送代码

## 进入web-test 目录
cd /jenkins/web-test

## 配置git 信息
git config user.name "jenkins-root"
git config user.email "jenkins@local.com"

# 1. 初始化git仓库(不存在.git才执行)
git init
# 2. 全部文件加入暂存
git add .
# 3. 生成第一条提交(必须有提交才能推送)
git commit -m "init web project"
# 4. 再次强制推送到远端master
git push ssh://git@192.168.122.129:2222/test/web-test.git HEAD:master -f

4.4 创建流水线

4.5 生成 jenkins 的 Secret token

4.6 配置Gitlab 项目webhooks

允许从Webhook和集成向本地网络发起请求允许从系统钩子向本地网络发起请求,如果不勾选,配置webhooks的时候ip不允许配置内网。

配置jenkins 生成的的Secret token

4.7 在jenkins 机器生成 ssh

## 生成ssh
ssh-keygen -t ed25519

4.8 查看公钥并配置在gitlab 中

## 查看公钥
cat /root/.ssh/id_ed25519.pub

4.9 查看私钥并配置在jenkins中

## 查看私钥
cat /root/.ssh/id_ed25519

4.10 配置流水线gitlab 信息

仓库地址写 ssh://git@你的gitlab服务器ip:22/test/web-test.git

4.11 在gitlab 测试推送

4.12 成功通过webhook构建流水线

4.13 查看输出日志

4.14 构建成功

4.15 访问 web-test 网站

http://你的部署机ip:8088/

或者在服务器 curl 

# 在部署机执行curl
curl http://localhost:8088/hello

四、结语

至此,一套完整的Jenkins+Java+Gitlab自动化流水线一键部署方案就全部搭建完成了。通过整套流水线的落地,我们彻底解决了Java项目传统部署方式繁琐、易错、效率低下的问题,实现了代码提交即部署的自动化迭代,极大简化了项目的上线、更新、运维流程。

这套方案适配SpringBoot、SSM等绝大多数Java项目,配置逻辑简单、稳定性高、可复用性强,完全适配个人开发、中小型企业项目的生产环境,是性价比最高的Java项目CI/CD落地方案。熟练掌握该流水线搭建与配置技巧,不仅能解放双手、提升开发运维效率,也是后端开发、运维工程师核心的职场必备能力。

后续大家可以根据自身项目需求,进一步拓展流水线功能,比如新增代码质量检测、单元测试、部署邮件通知、回滚机制、多环境部署等功能,让流水线更加完善、贴合企业级生产规范。如果大家在配置过程中遇到端口冲突、打包失败、拉取代码异常、服务启动报错等问题,欢迎在评论区留言交流。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐