Jenkins 01——简介
Jenkins是一个开源软件项目,一个可扩展的持续集成引擎。旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
持续集成是一种开发实践,需要开发人员定期将代码集成到共享存储库中。这个概念意在消除在构建生命周期中发现问题的问题。持续集成需要开发人员频繁构建。通常的做法是,每当代码提交发生时,应该触发构建。
主要目标:监控软件开发流程,快速显示问题。能保证开发人员以及相关人员省时省力提高开发效率。
主要用于:持续、自动地构建/测试软件项目; 监控一些定时执行的任务。
主要功能:将项目中重复执行的工作自动化的执行。
1. 软件的持续构建和测试。Jenkins提供了一个系统,使开发人员可以很容易的将改变集成到工程中。自动化的,持续的构建有利于提高开发效率。
2. 监视job的执行。job可以实现很多的功能,Jenkins可以对这些项目进行显示,让用户更清楚的注意到这些 损毁的job。
3. 项目源代码修改的检测。jenkins能够从项目的Subversion/CVS生成最近修改的集合列表,且不会增加Subversion/CVS Repository的负载。
4. 分布式构建。Jenkins可以将工程构建到多台机器,更好地利用硬件资源,节省时间。
Jenkins代码开源,用户可以自己编写插件。所以jenkins可以实现很多的功能。
Jenkins拥有的特性包括:
1. 易于安装-只要把jenkins.war部署到servlet容器,不需要数据库支持。
2. 易于配置-所有配置都是通过其提供的web界面实现。
3. 集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知。
4. 生成JUnit/TestNG测试报告。
5. 分布式构建支持Jenkins能够让多台计算机一起构建/测试。
6. 文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。
7. 插件支持:支持扩展插件,你可以开发适合自己团队使用的工具。
CI系统在整个开发过程中的主要作用是控制:当系统在代码存储库中探测到修改时,
它将运行构建的任务委托给构建过程本身。如果构建失败了,那么CI系统将通知相关人员,
然后继续监视存储库。它的角色看起来是被动的;但它确能快速反映问题。
特别是它具有以下优点:
Jenkins一切配置都可以在web界面上完成。有些配置如MAVEN_HOME和Email,只需要配置一次,所有的项目就都能用。
当然也可以通过修改XML进行配置。
支持Maven的模块(Module),Jenkins对Maven做了优化,因此它能自动识别Module,每个Module可以配置成一个job。相当灵活。
测试报告聚合,所有模块的测试报告都被聚合在一起,结果一目了然,使用其他CI,这几乎是件不可能完成的任务。
构件指纹(artifact fingerprint),每次build的结果构件都被很好的自动管理,无需任何配置就可以方便的浏览下载