Jenkins 是一个可扩展的持续集成引擎。html
主要用于:web
Jenkins拥有的特性包括:数据库
目前持续集成(CI)已成为当前许多软件开发团队在整个软件开发生命周期内侧重于保证代码质量的常见作法。它是一种实践,旨在缓和和稳固软件的构建过程。而且可以帮助您的开发团队应对以下挑战:tomcat
部署一个CI系统须要的最低要求是,一个可获取的源代码的仓库,一个包含构建脚本的项目。服务器
下图归纳了CI系统的基本结构:分布式
该系统的各个组成部分是按以下顺序来发挥做用的:工具
1. 开发者检入代码到源代码仓库。测试
2. CI系统会为每个项目建立了一个单独的工做区。当预设或请求一次新的构建时,它将把源代码仓库的源码存放到对应的工做区。优化
3. CI系统会在对应的工做区内执行构建过程。网站
4. (配置若是存在)构建完成后,CI系统会在一个新的构件中执行定义的一套测试。完成后触发通知(Email,RSS等等)给相关的当事人。
5. (配置若是存在)若是构建成功,这个构件会被打包并转移到一个部署目标(如应用服务器)或存储为软件仓库中的一个新版本。软件仓库能够是CI系统的一部分,也能够是一个外部的仓库,诸如一个文件服务器或者像Java.net、 SourceForge之类的网站。
6. CI系统一般会根据请求发起相应的操做,诸如即时构建、生成报告,或者检索一些构建好的构件。
Jenkins就是这么一个CI系统。以前叫作Hudson。
如下是使用Jenkins的一些理由:
Jenkins的主要目标是监控软件开发流程,快速显示问题。因此能保证开发人员以及相关人员省时省力提升开发效率。
CI系统在整个开发过程当中的主要做用是控制:当系统在代码存储库中探测到修改时,它将运行构建的任务委托给构建过程自己。若是构建失败了,那么CI系统将通知相关人员,而后继续监视存储库。它的角色看起来是被动的;但它确能快速反映问题。
特别是它具备如下优势:
* 容易安装,只须要执行Java -jar jenkins.war, 或者直接部署到一个servlet container中,例如tomcat。不须要安装,不须要数据库的支持。
* 容易配置,jenkins能够彻底地经过友好的web GUI来配置,且配置页面支持配置项的错误检查和很好的在线帮助。不须要手动地编辑xml的配置文件,可是jenkins也支持手动修改xml配置文件。
* 项目源码修改的检测,jenkins可以从项目的Subversion/CVS生成最近修改的集合列表,且改方式很是有效,不会增长Subversion/CVS Repository的负载。
* 可读的永久的连接生成,jenkins对于大部分pages都生成清楚的可读的永久的连接,例如''latest build"/"latest successful build",所以能够容易地在其余的地方引用jenkins的生成的pages。
* RSS/EMail/IM集成,能够经过RSS,EMail或IM来实时地监视build的失败。
* Build完成后仍然能够tag,支持在build完成后tag或重tag。
* Junit/TestNG 测试报告,可以很好地显示各类测试的报告,且能够生成失败的趋向图。
* 分布式build,jenkins可以分发build/test的负载到多台机器,可以更好地利用硬件资源,提升build的时间。
* 文件标识,jenkins能够标识build产生的文件,例如jars。
* 插件支持,jenkins能够经过第三方的插件来扩展。
* 跨平台,支持几乎全部的平台,例如Windows,Ubuntu/Debian,Red Hat/Fedora/CentOS,Mac OS X,openSUSE,FreeBSD,OpenBSD,Solaris/OpenIndiana.Gentoo。
转自:http://www.cnblogs.com/yangxia-test/p/4354213.html