当前位置: 首页 > news >正文

Jenkins(CI/CD工具)

1. 什么是 Jenkins?

Jenkins 是一个开源的持续集成(CI)和持续交付/部署(CD)工具,用于自动化软件构建、测试和部署过程。

2. Jenkins 优势

(1)开源免费:社区活跃,无需付费。

(2)跨平台:支持 Windows、Linux、macOS。

(3)高度可扩展:通过插件支持几乎所有 DevOps 工具。

(4)分布式构建:支持多节点并行执行任务(Master/Agent 架构)。

(5)可视化监控:提供构建日志、测试报告、趋势分析。

3. 核心功能(CI/CD)

(1)持续集成(CI, Continuous Integration):

        自动从代码仓库(如 GitHub、GitLab)拉取最新代码

        自动编译、运行单元测试,确保代码变更不会引入错误

(2)持续交付/部署(CD, Continuous Delivery/Deployment):

        自动将代码部署到测试环境、预发布环境或生产环境

        支持 Docker、Kubernetes、AWS、Azure 等云平台部署

(3)自动化任务:

        定时执行任务(如每日构建、夜间测试)

        触发式执行(如代码提交后自动构建)

(4)插件生态系统:

        提供 1800+ 插件,支持 Git、Maven、Docker、Ansible、Slack 等工具集成。

(5)流水线(Pipeline)

        使用 Jenkinsfile(Groovy 语法)定义复杂的构建、测试、部署流程。

        可视化构建流程(Blue Ocean 插件)。

4. Jenkins 典型应用场景

(1)自动构建和测试:每次提交代码后,自动运行编译、单元测试、代码检查(如 SonarQube)。

(2)自动化部署:将应用自动部署到测试环境、生产环境(如 Kubernetes、Docker)。

(3)定时任务:每天凌晨运行回归测试,生成测试报告。

(4)多环境发布:通过 Pipeline 实现 开发 → 测试 → 预发布 → 生产 的自动化发布流程。

(5)监控和通知:构建失败时,自动发送邮件/Slack/企业微信通知开发人员。

5. Jenkins vs 其他 CI/CD 工具

工具

特点

Jenkins

开源、插件多、灵活,适合复杂场景,但需要手动维护。

GitHub Actions

与 GitHub 深度集成,适合 GitHub 项目,YAML 配置简单。

GitLab CI/CD

与 GitLab 集成,内置 CI/CD,适合 GitLab 用户。

CircleCI

云原生 CI/CD,配置简单,适合中小型项目。

Travis CI

早期流行的 CI,适合开源项目,但近年逐渐被替代。

6. Windows下载和安装:https://www.jenkins.io/download/

7. 修改工作目录,并设置国内的清华大学镜像

(1)修改工作目录,将 %ProgramData%\Jenkins\.jenkins 修改为 D:\Jenkins\jenkins

(2)在 hudson.model.UpdateCenter.xml 中,(需要管理员权限修改)

将 https://updates.jenkins.io/update-center.json 替换成国内清华镜像源 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

(3)在 updates 目录下,编辑 default.json 文件,(需要管理员权限修改)

将 https://www.google.com 替换成 https://www.baidu.com

将 https://updates.jenkins.io/download 全部替换成 https://mirrors.tuna.tsinghua.edu.cn/jenkins

(4)重启Jenkins

8. 登录并创建管理员用户

9. 使用管理员账户登录

10. 构建项目

10.1 Freestyle

10.1.1 开始构建

10.1.2 解决一直在构建中,安装 Post Build Task 插件

# 跳过测试打包
clean package -Dmaven.test.skip=true# 进入 target 目录,找到 .jar 结尾的文件并在后台运行
cd target
for /f "delims=" %%i in ('dir /b *.jar') do (start "" javaw -jar "%%i" > log.log 2>&1
)
exit# Windows 系统
查看端口:netstat -ano | findstr 8080
杀死端口(可能需要管理员权限):taskkill /f /pid 69468
查看端口进程:tasklist /FI "PID eq 69468"

10.2 Pipeline

        自由发挥

 

相关文章:

  • OceanBase单机重启和配置修改
  • 自动伴随无人机说明文档
  • Redis 缓存并发问题深度解析:击穿、雪崩与穿透防治指南
  • 使用 LLM助手进行 Python 数据可视化
  • Python 数据可视化进阶:精准插入图表到指定 Excel 工作表
  • 手撕——贪吃蛇小游戏(下)
  • 如何通过挖掘需求、SEO优化及流量变现成功出海?探索互联网产品的盈利之道
  • Java高频面试之并发编程-08
  • C++/SDL 进阶游戏开发 —— 双人塔防(代号:村庄保卫战 14)
  • 前端分页与瀑布流最佳实践笔记 - React Antd 版
  • ADC读取异常情况汇总
  • pcm数据不支持存储在json里面,需要先转base64
  • 机器学习——Seaborn练习题
  • 怎样给MP3音频重命名?是时候管理下电脑中的音频文件名了
  • 月之暗面开源-音频理解、生成和对话生成模型:Kimi-Audio-7B-Instruct
  • 【Java面试笔记:进阶】23.请介绍类加载过程,什么是双亲委派模型?
  • 第二章、在Windows上部署Dify:从修仙小说到赛博飞升的硬核指南
  • AI在医疗领域的10大应用:从疾病预测到手术机器人
  • madvise MADV_FREE对文件页统计的影响及原理
  • Java求职面试:从Spring Boot到微服务架构的全面解析
  • 大学2025丨专访南开人工智能学院院长赵新:人工智能未来会变成通识类课程
  • 暴涨96%!一季度“中国游中国购”持续升温,还有更多利好
  • 清华姚班,正走出一支军团
  • 一个失败的赛季咎由自取,皇马只能把希望留到夏天
  • 别让心脏“饿肚子”,心肌缺血全解析
  • 戴昕谈隐私、数据、声誉与法律现实主义