文章目录
- Jenkins是什么
- 一、安装Jenkins
- 二、常用插件安装
- 三、jenkins配置国内源
- 四、创建任务
-
- 构建maven项目
-
- 1、前置准备
- [2、Jenkins 任务基础配置](#2、Jenkins 任务基础配置)
- [3、源码管理配置(Git 拉取代码)](#3、源码管理配置(Git 拉取代码))
- 4、构建触发器配置(自动触发构建)
- 5、环境配置
- [6、核心:Maven 项目构建配置](#6、核心:Maven 项目构建配置)
- [7、构建后配置:SSH 远程部署到服务器](#7、构建后配置:SSH 远程部署到服务器)
- 8、完整构建流程总结
- [Jenkins 自动化构建部署 Node / 前端项目](#Jenkins 自动化构建部署 Node / 前端项目)
Jenkins是什么
Jenkins是一款开源CI&CD软件,用于自动化构建、测试和部署软件等各种任务,以实现持续集成。
Jenkins支持各种运行方式,可通过系统包、Docker或者通过一个独立的Java程序。
一、安装Jenkins
1.使用docker方式安装
拉取镜像
bash
docker pull jenkinsci/blueocean
运行镜像
bash
docker run \
-u root \
-d --name jenkins \
--restart=always \
-p 10086:8080 \
-p 50000:50000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/jenkins_home:/var/jenkins_home \
jenkinsci/blueocean
可以使用docker ps查看容器

2.使用war包安装
下载本文关联的资源war包,并安装jdk17
官网war包下载地址https://get.jenkins.io/war-stable
创建systemctl启动脚本,注意要修改jdk位置、war包位置、端口、webroot位置
bash
#!/bin/bash
# 生成 jenkins.service 配置
cat > /etc/systemd/system/jenkins.service <<EOF
[Unit]
Description=Jenkins Service
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/usr/share/java
ExecStart=/www/server/java/jdk-17.0.8/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=/var/cache/jenkins/war --httpPort=10086
Restart=on-failure
RestartSec=5
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
# 重新加载服务
systemctl daemon-reload
# 开机自启
systemctl enable jenkins
echo "Jenkins systemd 服务已创建完成!"
echo "启动命令:systemctl start jenkins"
echo "查看状态:systemctl status jenkins"
2.配置Jenkins
可以通过http://ip:10086访问到我们部署的Jenkins页面

使用命令获取密码
bash
cat /var/jenkins_home/secrets/initialAdminPassword

也可以查看docker日志来获取密码
bash
docker logs -f -n 999 f5ee83bf2710

然后选择安装推荐的插件

会有插件安装失败,点击继续即可

然后可以创建账号或者使用admin继续

配置完成后会重启服务重新输入账号进入就可以了

二、常用插件安装
- Git Plugin 支持从 Git 仓库(如 GitHub、GitLab)拉取 Java 源码,是 CI/CD 流水线的基础
- Maven Integration Plugin:集成 Maven 构建 Java 项目
- Gradle Plugin:支持Gradle 构建(常用于 Android 项目)
- SSH Plugin / SSH Steps Plugin:通过 SSH 执行远程命令或传输文件
- Docker Plugin:在流水线中构建、推送 Docker 镜像
- Publish Over SSH:将构建产物通过 SCP 传输到目标服务器
- NodeJS Plugin:自动安装指定版本的 Node.js 和 npm,并将其加入构建环境的 PATH;支持全局安装 npm 包、配置自定义 npm registry、缓存策略等。
三、jenkins配置国内源
Jenkins 默认的插件更新源地址是 https://updates.jenkins.io/update-center.json。
不过,由于网络原因,国内用户访问 Jenkins 官方插件更新源可能会比较慢,甚至出现超时的情况。
因此,通常建议将 Jenkins 的插件更新源更换为国内的镜像源,以提高下载速度和稳定性。
国内源
以下是一些常用的国内 Jenkins 插件更新源地址:
清华大学:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
华为开源镜像站:https://mirrors.huaweicloud.com/jenkins/updates/update-center.json
腾讯云:https://mirrors.cloud.tencent.com/jenkins/updates/update-center.json
中国科学技术大学:https://mirrors.ustc.edu.cn/jenkins/updates/update-center.json
北京理工大学:https://mirror.bit.edu.cn/jenkins/updates/update-center.json

四、创建任务
构建maven项目
Jenkins 自动化构建部署 Maven 项目实战:从配置到部署全流程
在微服务和持续集成的开发流程中,Jenkins 是最常用的自动化构建、部署工具。本文将结合实战配置,手把手教你使用 Jenkins 自动化构建 Maven 项目,并通过 SSH 远程部署到服务器,覆盖源码拉取、Maven 打包、日志清理、远程部署全流程,适用于 SpringBoot 等 Maven 项目。
1、前置准备
已安装 Jenkins 服务,且配置好 JDK、Maven 环境
服务器已安装 Git、Docker(如需容器化部署)
Jenkins 安装必备插件:
Maven Integration(Maven 项目构建)
Git Plugin(拉取 Git 代码)
Publish Over SSH(远程 SSH 部署)
已准备好代码仓库(阿里云 Codeup/GitHub/GitLab)、服务器登录凭证
2、Jenkins 任务基础配置
- 创建 Maven 项目任务
打开 Jenkins 控制台,点击新建任务,输入任务名称(如 artfinch-aigc),选择构建一个 Maven 项目,点击确定。 - 通用配置
丢弃旧的构建:开启后自动清理历史构建记录,避免占用磁盘空间
保持构建的天数:3
保持构建的最大个数:3
参数化构建过程:按需配置(本文示例未使用,可根据业务添加环境参数)
并发构建:按需开启,多分支同时构建时使用
3、源码管理配置(Git 拉取代码)
这一步实现 Jenkins 自动拉取远程代码仓库的代码,是自动化构建的基础。
选择 Git
Repository URL:填写代码仓库地址
示例:https://codeup.aliyun.com/xxx/xxx/xxx.git
Credentials:添加仓库的账号密码凭证(阿里云 Codeup/Git 账号)
Branches to build:指定要构建的分支
示例:*/test(测试分支,可根据需求改为 /main/ /dev)
其余配置默认即可,无需修改。
4、构建触发器配置(自动触发构建)
按需配置构建触发规则,常用两种方式:
GitHub hook trigger for GITScm polling:代码提交时自动触发构建(配合代码仓库 WebHook 使用)
轮询 SCM:定时检查代码变更,示例:H/15 * * * *(每 15 分钟检查一次)
本文示例未强制开启触发器,支持手动点击构建 + 代码提交自动触发双模式。
5、环境配置
Delete workspace before build starts:构建前删除工作空间(避免旧文件干扰,推荐开启)
Provide Node & npm bin/ folder to PATH:前端项目按需开启,纯后端 Maven 项目可忽略
构建日志添加时间戳前缀:方便排查构建问题,推荐开启
6、核心:Maven 项目构建配置
这是最关键的步骤,配置 Maven 打包命令,指定打包模块。
Root POM:根目录的 pom.xml 文件,直接填写 pom.xml
Goals and options:Maven 打包命令(核心)
示例命令:clean package -pl xx-xx -am
bash
clean:清理旧的打包文件
package:执行打包操作
-pl xx-xx:指定打包子模块(多模块项目必备,单模块可删除)
-am:同时打包依赖模块
小贴士:单模块 Maven 项目直接使用 clean package -Dmaven.test.skip=true(跳过测试用例,加快构建速度)
7、构建后配置:SSH 远程部署到服务器
通过 Publish Over SSH 插件,将打包好的 jar 包发送到远程服务器,并执行部署脚本。
- 配置 SSH 服务器
Name:选择提前配置好的远程服务器名称(如 artfinch-test)
提前在 Jenkins 全局配置中配置服务器 IP、端口、登录凭证 - 文件传输配置
Source files:要传输的 jar 包路径
示例:**/xxx/target/xxx-xxx.jar
Remove prefix:移除多余前缀路径
示例:/xxx
Remote directory:服务器接收文件的目录
示例:/xxx/xxx - 远程执行部署脚本
在 Exec command 中填写服务器部署脚本,实现自动重启服务:
bash
#!/bin/bash
# 进入服务器部署目录
cd /xxx-test/xx
# 执行容器化部署脚本(Docker 部署 jar 包)
sh xxx-docker.sh
脚本说明:xxxx-docker.sh 是提前写好的 Docker 部署脚本,实现停止旧容器、删除旧镜像、构建新镜像、启动新服务全流程。
8、完整构建流程总结
点击 Jenkins 任务立即构建
Jenkins 自动拉取 Git test 分支代码
执行 Maven 命令打包指定子模块
自动清理历史构建记录(保留 3 天 / 3 个)
通过 SSH 将 jar 包传输到测试服务器
服务器自动执行脚本,完成服务部署
查看构建日志,排查异常问题
Jenkins 自动化构建部署 Node / 前端项目
这篇文章完全按照你提供的 xx-user-ui 前端项目 Jenkins 配置 整理,手把手带你实现 前端项目自动化构建、自动同步到 Nginx 服务器,适用于 Vue/React/Monorepo 等前端工程化项目。
1、前置准备
Jenkins 已安装:Git Plugin、NodeJS 插件
Jenkins 服务器已配置 NodeJS(23.1.0)、pnpm、rsync
目标服务器安装 Nginx,配置好 SSH 免密登录
代码仓库:阿里云 Codeup,已配置账号密码凭证
2、Jenkins 任务基础配置
- 新建任务
任务名称:xx-user-ui
任务类型:构建一个自由风格的软件项目 - 通用配置
描述:xx 用户界面
丢弃旧的构建:开启
保持构建的天数:3
保持构建的最大个数:3
未开启参数化构建、并发构建,保持默认即可
3、源码管理(Git 拉取前端代码)
选择 Git
Repository URL:
https://codeup.aliyun.com/xx/xx/xx-user-ui.git
Credentials:xx(仓库账号密码凭证)
Branches to build:*/test(构建测试分支)
其余配置默认
4、构建触发器
本次配置未开启自动触发,支持:
手动点击「立即构建」
可后续按需开启:GitHub hook / 轮询 SCM
5、环境配置(核心:Node 环境)
Delete workspace before build starts:构建前删除工作空间(避免旧文件干扰)
Provide Node & npm bin/ folder to PATH:开启
NodeJS Installation:nodejs23.1.0(Jenkins 全局配置好的 Node 版本)
在构建日志中添加时间戳前缀:开启,方便排查问题
npmrc、缓存使用系统默认
6、核心:构建步骤(Shell 脚本)
这是前端项目的核心:pnpm 安装依赖 → 打包构建 → rsync 同步到 Nginx 服务器
完整 Shell 命令
bash
# 1. 下载依赖(使用淘宝镜像,加速下载)
pnpm install --registry=https://registry.npmmirror.com --no-frozen-lockfile
# 2. 执行测试环境打包命令
pnpm run build:xxx-abc:test
# 3. 同步 dist 目录到服务器 Nginx 路径1
rsync -avz --delete --chown=nginx:nginx /var/lib/jenkins/workspace/xx-user-ui/apps/abc-xxx/dist/ root@127.0.0.1:/usr/local/nginx/html/dist/
命令说明
pnpm install
--registry:使用国内镜像加速依赖安装
--no-frozen-lockfile:允许更新依赖,避免 lock 版本冲突
pnpm run build:xx-abc:test
执行项目中配置的测试环境专属打包脚本
rsync 远程同步
-avz:归档模式 + 压缩传输
--delete:删除服务器上本地不存在的文件(保持一致)
--chown=nginx:nginx:同步后修改文件权限,保证 Nginx 可访问
7、构建后操作
本次配置无额外构建后操作,构建 + 同步在 Shell 脚本中一次性完成。
8、完整自动化流程
点击 Jenkins 立即构建
拉取 Codeup 上 test 分支前端代码
自动加载 NodeJS 23.1.0 环境
pnpm 安装项目依赖
执行测试环境打包,生成 dist 静态资源
rsync 把 dist 同步到远程 Nginx 服务器
自动清理历史构建记录(保留 3 天 / 3 个)
部署完成,前端页面直接访问生效
9、常见问题排查
pnpm: command not found
检查 Jenkins NodeJS 配置是否正确,是否将 pnpm 加入全局
打包失败
本地执行 pnpm install && pnpm run build:artmate-abc:test 验证是否正常
rsync 权限拒绝
配置 Jenkins 到目标服务器的 SSH 免密登录
Nginx 访问 403
检查文件权限是否为 nginx:nginx,路径是否正确