Jenkins安装及使用

文章目录

Jenkins是什么

Jenkins是一款开源CI&CD软件,用于自动化构建、测试和部署软件等各种任务,以实现持续集成。

Jenkins支持各种运行方式,可通过系统包、Docker或者通过一个独立的Java程序。

官网地址:https://www.jenkins.io/

一、安装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 任务基础配置

  1. 创建 Maven 项目任务
    打开 Jenkins 控制台,点击新建任务,输入任务名称(如 artfinch-aigc),选择构建一个 Maven 项目,点击确定。
  2. 通用配置
    丢弃旧的构建:开启后自动清理历史构建记录,避免占用磁盘空间
    保持构建的天数: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 包发送到远程服务器,并执行部署脚本。

  1. 配置 SSH 服务器
    Name:选择提前配置好的远程服务器名称(如 artfinch-test)
    提前在 Jenkins 全局配置中配置服务器 IP、端口、登录凭证
  2. 文件传输配置
    Source files:要传输的 jar 包路径
    示例:**/xxx/target/xxx-xxx.jar
    Remove prefix:移除多余前缀路径
    示例:/xxx
    Remote directory:服务器接收文件的目录
    示例:/xxx/xxx
  3. 远程执行部署脚本
    在 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 任务基础配置

  1. 新建任务
    任务名称:xx-user-ui
    任务类型:构建一个自由风格的软件项目
  2. 通用配置
    描述: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,路径是否正确

相关推荐
QuestLab1 小时前
让AI真正“看见“界面:纯视觉GUI自动化编排器开源了
运维·人工智能·自动化
imuliuliang1 小时前
五大编程语言核心对比:特性与应用全解析
运维·spring boot·nginx
Agent产品评测局2 小时前
制造业考勤智能管理系统,主流AI Agent方案横评:2026年企业级自动化选型深度指南
运维·人工智能·ai·chatgpt·自动化
bukeyiwanshui2 小时前
20260509 docker项目总结
运维·docker·容器
玄尺2 小时前
jenkins安装和使用
运维·jenkins
剑神一笑2 小时前
Linux xargs 命令深度解析:从管道到命令构建的桥梁
linux·运维·chrome
lbb 小魔仙2 小时前
DolphinDB:以“存算一体“重新定义工业时序数据的边界
开发语言·人工智能·python·langchain·jenkins
Cisyam^2 小时前
Bright Data Web Scraper 实战:构建 TikTok 与 LinkedIn Web Scraping 自动化 Skill(2026)
运维·前端·自动化