Jenkins (软件)

Jenkins是一款由Java编写的开源持续集成工具。在与Oracle发生争执后,项目从Hudson项目复刻

Jenkins
首次发布2011年2月2日 (2011-02-02)[1]
当前版本2.381(2022年12月4日,​23個月前​(2022-12-04
源代码库 編輯維基數據鏈接
编程语言Java
平台Java 11, Java 17
类型持續交付
许可协议MIT許可證[2]
网站www.jenkins.io/ 编辑维基数据

Jenkins提供了软件开发的持续集成服务。它运行在Servlet容器中(例如Apache Tomcat)。它支持软件配置管理(SCM)工具(包括AccuRev SCM英语AccuRev SCMCVSSubversionGitPerforce英语PerforceClearcase英语ClearcaseRTC英语Rational Team Concert),可以执行基于Apache AntApache Maven的项目,以及任意的Shell脚本和Windows批处理命令。Jenkins的主要开发者是川口耕介。[3]Jenkins是在MIT许可证下发布的自由软件[4]

可以通过各种手段触发构建。例如提交给版本控制系统时被触发,也可以通过类似Cron的机制调度,也可以在其他的构建已经完成时,还可以通过一个特定的URL进行请求。

历史

Jenkins的前身是Hudson项目。Hudson 2004年夏天始创于昇陽電腦,2005年2月首次发布于java.net。[5]

2007年前后,Hudson被称为相对CruiseControl英语CruiseControl和其他开源的构建服务器(Build Server)更好的选择。[3][6]2008年5月的JavaOne大会上,Hudson成为“Duke选择奖”开发人员解决方案分类的得主。[7]

在2010年11月,关于由谁主导来Hudson[8],该项目的主要贡献者和Oracle之间展开谈判。尽管在多个方面达成一致,争议集中在是否把Hudson注册为商标[9],后来Oracle声明对Hudson的名字拥有权利,并在2010年12月申请将其注册为商标。[10]因此,2011年1月11日,社群号召投票将项目名称从“Hudson”变更为“Jenkins”。[11] 2011年1月29日,社群投票以压倒多数批准通过该提案,创建Jenkins项目。[12][13]

2011年2月1日,Oracle表示他们打算继续Hudson的开发,并认为Jenkins是Hudson的复刻,而非重命名。[14]Jenkins和Hudson之后继续作为两个独立的项目,均声称对方是自己的复刻。截至2013年12月,在GitHub上的Jenkins组织有567项目成员及约1100公共库(public repository)[15],而Hudson组织有32个项目成员和17个公共库[16]

在2011年,创建者川口耕介收到了O'Reilly开源奖英语O'Reilly Open Source Award,奖励其在Hudson/Jenkins项目上的工作。2014年,川口耕介成为CloudBees英语CloudBees的首席技术官。[17]

插件

Jenkins的扩展插件已经发布,能使非Java语言编写的项目也使用Jenkins。[18]对于大多数的版本控制系统和大的数据库,有与Jenkins集成的插件可用。许多构建(build)工具都是通过他们各自的插件提供支持。插件还可以改变Jenkins的外观,或添加新的功能。

构建时可以生成各种格式的测试报告(JUnit是被内建支持的,别的格式则需通过插件)。Jenkins可以显示报表,生成趋势图,并在图形化界面中呈现它们。

参见

参考文献

  1. ^ Jenkins 1.396 released页面存档备份,存于互联网档案馆), The first release of Jenkins is posted, Kohsuke Kawaguchi
  2. ^ LICENSE.txt. jenkinsci/jenkins (source code repository). GitHub. 2008-02-12 (2011-09-11) [2016-10-18]. (原始内容存档于2016-10-18). 
  3. ^ 3.0 3.1 Dyer, Dan. Why are you still not using Hudson?. New Adventures in Software. uncommons.org. 2008-09-05 [May 21, 2008]. (原始内容存档于2012-04-26). 
  4. ^ Kawaguchi, Kohsuke; et al. Use Hudson: License. [2011-01-30]. (原始内容存档于2009-02-07). 
  5. ^ Kawaguchi, Kohsuke. Hudson (PDF). [2013-06-28]. (原始内容 (PDF)存档于2014-07-01). 
  6. ^ Jay R. [user name]; Jeffery Frederick, Jonik, et al [user names]. What is the difference between Hudson and CruiseControl for Java projects?. Stack Overflow. [2011-01-17]. (原始内容存档于2010-09-06). 
  7. ^ Duboscq, Geneviève. 2008 JavaOne Conference: Duke's Choice Awards Winners for 2008. 2008 Java One Conference. java.sun.com. 2008 [2008-05-21]. (原始内容存档于2012-04-26). 
  8. ^ Who's driving this thing?. [January 31, 2011]. (原始内容存档于2013-03-12). 
  9. ^ Hudson Process Discussion Summary. [2011-01-31]. (原始内容存档于2013-06-08). 
  10. ^ Blewitt, Alex. Hudson Renames to Jenkins. InfoQ. [2011-02-08]. (原始内容存档于2013-07-22). 
  11. ^ Bayer, Andrew. Hudson's future. Jenkins CI: A Jenkins community resource. 2011-01-11 [2011-01-11]. (原始内容存档于2016-03-17). 
  12. ^ Bayer, Andrew. Rename Vote Results. Hudson-dev Google Group. 2011-01-29 [2011-01-29]. (原始内容存档于2011-01-31). 
  13. ^ Bayer, Andrew. Jenkins!. 2011-01-29 [2011-01-30]. (原始内容存档于2016-03-09). 
  14. ^ The Future of Hudson. Hudson-dev mailing list. [2011-02-02]. (原始内容存档于2011-02-05). 
  15. ^ Jenkins organisation on GitHub. [2013-01-22]. (原始内容存档于2021-01-25). Jenkins (jenkinsci),2009年7月21日加入,有1100余公共库(public repos.),567个成员 
  16. ^ Hudson organisation on GitHub. [2013-01-22]. (原始内容存档于2020-04-17). Hudson CI Server (hudson),2011年2月1日加入,有17个公共库(public repos.),32个成员 
  17. ^ People on the Move. Boston Business Journal. [2014-01-31]. (原始内容存档于2020-09-19). 
  18. ^ Plugins. Jenkins Wiki. [2014-07-26]. (原始内容存档于2016-12-05). 

外部链接