|NO.Z.00027|——————————|CloudNative|——|CI/CD&Jenkins_pipeline概述.V01|——|Jenkins概述|
一、Jenkins概述

### --- Jenkins历史
~~~ # Jenkins的前身是Hudson,采用JAVA编写的持续集成开源工具。
~~~ Hudson由Sun公司在2004年启动,第一个版本于2005年在java.net发布。
~~~ 2007年开始Hudson逐渐取代CruiseControl和其他的开源构建工具的江湖地位。
~~~ 在2008年的JavaOne大会上在开发者解决方案中获得杜克选择大奖(Duke's Choice Award)。
~~~ # 在2010年11月期间,因为Oracle对Sun的收购带来了Hudson的所有权问题。
~~~ 主要的项目贡献者和Oracle之间,尽管达成了很多协议,但有个关键问题就是商标名称“Hudson”。
~~~ 甲骨文在2010年12月声明拥有该名称并申请商标的权利。
~~~ 因此,2011年1月11日,有人要求投票将项目名称从“Hudson”改为“Jenkins”。
~~~ 2011年1月29日,该建议得到社区投票的批准,创建了Jenkins项目。
~~~ # 2011年2月1日,甲骨文表示,他们打算继续开发Hudson,并认为Jenkins只是一个分支,而不是重命名。
~~~ 因此,Jenkins和Hudson继续作为两个独立的项目,每个都认为对方是自己的分支。
~~~ 到2013年12月,GitHub上的Jenkins拥有567个项目成员和约1,100个公共仓库,与此相对的Hudson有32个项目成员和17个公共仓库。
~~~ 到现在两者的差异更多,应该说Jenkins已经全面超越了Hudson。
~~~ 此外,大家可能是出于讨厌Oracle的情绪,作为Java开发者天然地应该支持和使用Jenkins。
~~~ # 后面Hudson被Oracle捐给了Eclipse基金会,所以右边这老头有个Eclipse的光环加持。
二、为什么Jenkins更受大家欢迎:由开发者主导、面向开发者

### --- 为什么Jenkins更受大家欢迎:由开发者主导、面向开发者
~~~ 首先,曾经是Hudson开发人员中的99%都转向了Jenkins的开发,
~~~ 其中包括最初的创建者川口清子(Kohsuke Kawaguchi)。
~~~ 他独自写了大部分代码,并且他的经验是Hudson各种高级特性的关键来源。
~~~ Jenkins的开发社区更活跃。所以对很多人而言,从血统上看Hudson是后娘养的,Jenkins才是亲生的!
### --- 治理和社区
~~~ Jenkins开发社区的管理是很开放的。 有一个独立的董事会,其中包括来自Yahoo!
~~~ CloudBees,Cloudera和Apture等多家公司的长期以来的Hudson开发人员。
~~~ 每次会议后,他们定期举行治理会议并发表意见,征询公众意见。
~~~ 他们还将所有代码都捐赠给公共利益软件组织(SPI),以确保社区持续开放。
### --- 稳定性
~~~ 分手后,针对Jenkins的贡献不断持续增加,Jenkins制定了新的长期支持发布线。
~~~ 社区定大约每三个月发布一次稳定版本的补丁。
### --- 插件的平台
~~~ # Jenkins支持超过1000个插件。
~~~ 凭借多样而强大的插件Jenkins成了整个开发生命周期中的一个中心点。
~~~ # 到了2017年,两者的发展差异更大了。
~~~ Jenkins应该说是CI工具中公认的老大,而Hudson不仅不能与Jenkins比,跟其他CI工具比也没什么优势,完全沉沦了。
~~~ # slant网站对一系列CI工具做了一次对比,其中Jenkins和Hudson的情况如下。
三、Jenkins特性
### --- 基本面问题
~~~ | 工具 | Jenkins | Hudson |
~~~ | ------------------ | ------- | ------ |
~~~ | 最好的CI工具 | 1 | 22 |
~~~ | 最好的JAVA CI工具 | 1 | 7 |
~~~ | 最好的自托管CI工具 | 3 | 4 |
### --- 其他支持
~~~ | 工具 | Jenkins | Hudson |
~~~ | ------------------------ | ------- | ------ |
~~~ | 对Window支持最好 | 1 | 无排名 |
~~~ | 最好的开源CI工具 | 1 | 无排名 |
~~~ | 对BitBucket的支持 | 2 | 无排名 |
~~~ | 对移动开发者支持最好的CI | 4 | 无排名 |
### --- 更多特征
~~~ | Jenkins | Hudson |
~~~ | ------------------------------------------------------------ | ----------------------------------------- |
~~~ | 免费且开源 | 与Jenkins共享了很多代码,安装还是挺简单的 |
~~~ | 关键的环境变量可以安全存储 | |
~~~ | 支持多个SCM,包括SVN, Mercurial, Git。集成了GitHub和Bitbucket | |
~~~ | 高度可配置 | |
~~~ | 资源和教程很多 | |
~~~ | 安装运行简单 | |
~~~ | 分布式的构建也能高效运行 | |
~~~ | 可跨平台部署 | |
~~~ | 很多高质量的插件 | |
~~~ | 得奖无数 | |
~~~ | 庞大的社区 | |
四、Jenkins说明
### --- Jenkins功能
~~~ 持续的软件版本发布/测试项目。
~~~ 监控外部调用执行的工作。
### --- Jenkins 概念
~~~ Jenkins是一个功能强大的应用程序,允许**持续集成和持续交付项目**,
~~~ 无论用的是什么平台。这是一个免费的开源项目,可以处理任何类型的构建或持续集成。
~~~ 集成Jenkins可以用于一些测试和部署技术。Jenkins是一种软件允许持续集成。
### --- Jenkins 目的
~~~ 持续、自动地构建/测试软件项目。
~~~ 监控软件开放流程,快速问题定位及处理,提提高开发效率。
### --- Jenkins 特性
~~~ 开源的java语言开发持续集成工具,支持CI,CD。
~~~ 易于安装部署配置:可通过yum安装,或下载war包以及通过docker容器等快速实现安装部署,可方便web界面配置管理。
~~~ 消息通知及测试报告:集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知,生成JUnit/TestNG测试报告。
~~~ 分布式构建:支持Jenkins能够让多台计算机一起构建/测试。
~~~ 文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。
~~~ 丰富的插件支持:支持扩展插件,你可以开发适合自己团队使用的工具,如git,svn,maven,docker等。
五、产品发布流程
### --- 产品发布流程
~~~ 产品设计成型 -> 开发人员开发代码 -> 测试人员测试功能 -> 运维人员发布上线
~~~ 持续集成(Continuous integration,简称CI)
~~~ 持续交付(Continuous delivery)
~~~ 持续部署(continuous deployment)
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
cdv015-jenkins2
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南