l 易于安装-只要把jenkins.war部署到servlet容器,不需要数据库支持。
l 易于配置-所有配置都是通过其提供的web界面实现。
l 集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知。
l 生成JUnit/TestNG测试报告。
l 分布式构建支持Jenkins能够让多台计算机一起构建/测试。
l 文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。
l 插件支持:支持扩展插件,你可以开发适合自己团队使用的工具。
1 Jenkins的由来
目前持续集成(CI)已成为当前许多软件开发团队在整个软件开发生命周期内侧重于保证代码质量的常见做法。
它是一种实践,旨在缓和和稳固软件的构建过程。并且能够帮助您的开发团队应对如下挑战:
l 软件构建自动化 :配置完成后,CI系统会依照预先制定的时间表,或者针对某一特定事件,对目标软件进
行构建。
l 构建可持续的自动化检查 :CI系统能持续地获取新增或修改后签入的源代码,也就是说,当软件开发团队
需要周期性的检查新增或修改后的代码时,CI系统会不断确认这些新代码是否破坏了原有软件的成功构建。
这减少了开发者们在检查彼此相互依存的代码中变化情况需要花费的时间和精力(说直接一点也是钱啊,
呵呵)。
l 构建可持续的自动化测试 :构建检查的扩展部分,构建后执行预先制定的一套测试规则,完成后触发通
知(Email,RSS等等)给相关的当事人。
l 生成后后续过程的自动化 :当自动化检查和测试成功完成,软件构建的周期中可能也需要一些额外的任务,
诸如生成文档、打包软件、部署构件到一个运行环境或者软件仓库。这样,构件才能更迅速地提供给用户使用。
部署一个CI系统需要的最低要求是,一个可获取的源代码的仓库,一个包含构建脚本的项目。
l 是所有CI产品中在安装和配置上最简单的。
l 基于Web访问,用户界面非常友好、直观和灵活,在许多情况下,还提供了AJAX的即时反馈。
l Jenkins是基于Java开发的(如果你是一个Java开发人员,这是非常有用的),但它不仅限于构建基于Java的
软件。
l Jenkins拥有大量的插件。这些插件极大的扩展了Jenkins的功能;它们都是开源的,而且它们可以直接通过
web界面来进行安装与管理。
1.1 Jenkins的目标
Jenkins的主要目标是监控软件开发流程,快速显示问题。所以能保证开发人员以及相关人员省时省力提高
开发效率。
l Jenkins一切配置都可以在web界面上完成。有些配置如MAVEN_HOME和Email,只需要配置一次,所有的
项目就都能用。当然也可以通过修改XML进行配置。
l 支持Maven的模块(Module),Jenkins对Maven做了优化,因此它能自动识别Module,每个Module可以配置
成一个job。相当灵活。
l 测试报告聚合,所有模块的测试报告都被聚合在一起,结果一目了然,使用其他CI,这几乎是件不可能
完成的任务。
l 构件指纹(artifact fingerprint),每次build的结果构件都被很好的自动管理,无需任何配置就可以方便的浏
览下载。