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

Jenkins 持续集成与部署

Jenkins 持续集成与部署

一、Jenkins 简介

Jenkins 是一个开源的持续集成与持续交付(CI/CD)工具,使用 Java 语言编写,可在 Tomcat 等 Servlet 容器中运行,也可独立运行。

主要功能:
  • 自动化构建、测试、部署项目
  • 监控外部任务执行
  • 支持多种版本管理工具(如 Git、SVN)和构建工具(如 Maven、Gradle、Ant)
常用工具集成:
  • 版本控制:Git、SVN
  • 构建工具:Maven、Ant、Gradle

官网:https://www.jenkins.io/zh

二、相关工具介绍

1. SVN
  • 开源版本控制系统
  • 支持分支管理,适合多人协作开发
2. Maven
  • 项目对象模型(POM)驱动的构建工具
  • 支持项目构建、依赖管理、文档生成
3. Ant
  • 基于 Java 的自动化构建工具
  • 支持编译、测试、打包、部署
4. Gradle
  • 基于 Groovy 的自动化构建工具
  • 结合了 Ant 的灵活性和 Maven 的依赖管理

三、Jenkins 工作原理

  1. 从版本控制系统(如 Git/SVN)拉取代码
  2. 执行预设的构建脚本(如 Maven、Shell)
  3. 执行测试、打包、部署等任务
  4. 生成构建报告并通知相关人员

四、Jenkins 特点

  • 易安装:仅一个 WAR 包即可运行
  • 易配置:提供友好的 Web 配置界面
  • 支持版本变更检测
  • 提供永久链接地址
  • 集成邮件/RSS/即时消息通知
  • 支持 JUnit/TestNG 测试报告
  • 支持分布式构建
  • 支持文件指纹记录
  • 丰富的插件生态系统

五、CI/CD 概述

1. 持续集成(CI)
  • 定义:开发人员提交代码后自动触发构建和测试流程
  • 目标:快速发现集成错误,提高代码质量
CI 工作流程:
代码提交 → 自动构建 → 自动测试 → 反馈结果
优势:
  • 错误易于定位
  • 开发流程更可控
2. 持续交付(CD)
  • 定义:在 CI 基础上,将代码自动部署到类生产环境
  • 目标:确保代码可随时部署到生产环境
CD 工作流程:
CI 完成 → 部署到 Staging 环境 → 手动确认 → 部署到生产环境
3. 持续部署(CD)
  • 定义:在持续交付的基础上,自动部署到生产环境
  • 目标:实现全自动化发布流程

六、 安装 Jenkins

1、卸载自带 JDK
[root@jenkins ~]# rpm -aq | grep java
[root@jenkins ~]# rpm -e java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64 --nodeps
[root@jenkins ~]# rpm -e java-1.8.0-openjdk-headless-1.8.0.181-7.b13.el7.x86_64 --nodeps
2、安装 JDK 11
[root@jenkins ~]# yum -y install java-11-openjdk
3、安装 Tomcat 9
[root@jenkins ~]# tar -zxvf apache-tomcat-9.0.67.tar.gz
[root@jenkins ~]# ln -s apache-tomcat-9.0.67/ tomcat
[root@jenkins ~]# cd tomcat/
[root@jenkins tomcat]# bin/startup.sh
4、部署 Jenkins
[root@jenkins tomcat]# cd webapps/
[root@jenkins webapps]# wget http://mirrors.jenkins.io/war-stable/2.346.3/jenkins.war
[root@jenkins webapps]# cd
[root@jenkins ~]# cd tomcat/
[root@jenkins tomcat]# bin/catalina.sh stop
[root@jenkins tomcat]# bin/catalina.sh start
5、访问并初始化
http://192.168.100.10:8080/jenkins

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

http://www.dtcms.com/a/549130.html

相关文章:

  • 企业查询网站有哪些深圳工业产品设计公司
  • 解析平面卷积/pytorch的nn.Conv2d的计算步骤,in_channels与out_channels如何计算而来
  • 医疗器械经营许可证识别技术通过OCR与AI技术实现资质信息自动提取,显著提升行业效率与合规管理水平
  • Lombok 不生效 —— 从排查到可运行 Demo(含实战解析)
  • 【自然语言处理】预训练02:近似训练
  • 具身智能革命:富唯智能如何用“认知机器人”重塑柔性智造新纪元
  • 孤能子视角:文明演化的适配性考验——从EIS理论看中美技术路径分野
  • itunes礼品卡兑换【完整协议方案】
  • High Rank Adaption系列文章
  • wordpress 网站迁移如何做网站霸屏
  • Rust 中 Raft 协议的云原生深度集成与实践最佳实践
  • html css js网页制作成品——掌心电视剧HTML+CSS网页设计(4页)附源码
  • 基于用户的协同过滤算法实现小说推荐算法
  • 速卖通新客优惠券采购:砍单率高的核心原因
  • 【11408学习记录】考研数学概率论核心突破:一维随机变量函数分布——公式法 分布函数法精讲!​
  • Flutter 网络通信协议:从原理到实战,选对协议让 APP 飞起来
  • 【机器学习入门】9.2:感知机的工作原理 —— 从模型结构到实战分类
  • Flutter---个人信息(3)---实现修改性别
  • 做个网站需要什么制作软件的网站
  • 河北手机响应式网站建设设计企业门户网站管理制度
  • Docker简介与优豆云环境搭建
  • 后端面试实战:手写 Java 线程池核心逻辑,解释核心参数的作用
  • 免费做数学题的网站大连装修公司排名榜
  • Spring Al学习5 :聊天模型 API
  • 分布式锁深度解析:从架构本质到生产实践
  • 浏览器就是画板!PaintBoard让创意灵感不再受设备限制
  • 网站建设要学哪种计算机语言小学生一分钟新闻播报
  • FT8370A/B/C/CD/CP高性能次边同步整流芯片典型电路及管脚定义
  • MySQL(五) - 数据连接查询和子查询操作
  • STM32——WWDG