Jenkins是一个用Java编写的开源的持续集成(CI)工具,可用于自动化各种任务,如构建、测试和部署软件,旨在缓和和稳固软件的构建过程。
Jenkins是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上。同时 Jenkins 能实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性。
Jenkins起源
Jenkins 前身叫做Hudson,Hudson是在2004年的夏天由Sun公司开发的(就是开发Java的那家),2005年2月开源并发布了第一个版本。Hudson发布的时候CruiseControl是CI界的老大哥,但是很快,在大约2007年的时候Hudson已经超越CruiseControl。2008年5月的JavaOne大会上,Hudson获得了开发解决方案类的Duke's Choice奖项。从此,小弟翻身做大哥,Hudson成为CI的代名词。2009年6月,乌龟壳(Oracle)收购Sun,所有人都炸裂了.2010年9月,乌龟壳公司偷偷把Hudson®™变成了注册商标。2010年11月,Hudson社区的核心开发人员发现并angry了,双方进行了不太友好的会谈,不出意料的谈崩了。圣诞节过后,2011年的第一场雪,比以往来的要晚一些,几个秃顶的大叔在McDonald‘s的豪华包间里做了一个艰难的决定:mv -f hudson jenkins.
持续集成最早由Martin Fowler 于10年前已经提出,希望通过持续集成能够实现以下过程:
任何人在任何地点,任何时间可以构建整个项目。
在持续集成构建过程中,每一个单元测试都必须被执行。
在持续集成构建过程中,每一个单元测试必须通过。
持续集成构建的结果是可以发布的软件包。
当以上任何一点不能满足时,整个团队的主要任务就是去解决这个问题。