【工具使用】持续集成工具----Jenkins

来源:互联网 发布:怎么更改软件版本号 编辑:程序博客网 时间:2024/05/19 22:06

前言

      在Java项目开发中,很多工作比较繁琐:新功能开发完毕,自动编译,持续集成,测试,打包,发布/部署…我们时常能听到将开发流程自动化的声音。特别想说,人真的是这个世界上最聪明的动物,不管做什么,都想少干点活,都想利用到工具,进行自己想做的一切事情。在小编的本篇博客中,介绍一下持续集成工具Jenkins,来从宏观上了解一下Jenkins。

叙述

What

    Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。

Jenkins特性:

(1)易于安装:只要把jenkins.war部署到servlet容器,不需要数据库支持。
(2)易于配置:所有配置都是通过其提供的web界面实现。
(3)集成RSS/EmaiI通过RSS发布构建结果或当构建完成时通过email通知。
(4)生成JUnit/TestNG测试报告
(5)分布式构建支持Jenkins能够让多台计算机一起构建/测试。
(6)文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等
(7)插件支持:支持扩展插件,你可以开发适合自己团队使用的工具。

Where

    目前持续集成(CI)己成为当前许多软件开发团队在整个软件开发生命周期内侧重于保证代码质量的常见做法。它是一种实践,旨在缓和和稳固软件的构建过程。并且能够帮助您的开发团队应对如下挑战:
(1)软件构建自动化:配置完成后,系统会依照预先制定的时间表,或者针对某一特定事件,对目标软件进行构建。
(2)构建可持续的自动化检查:Cl系统能持续地获取新增或修改后签入的源代码,也就是说,当软件开发团队需要周期性的检查新增或修改后的代码时,CI系统会不断确认这些新代码是否破坏了原有软件的成功构建。这减少了开发者们在检查彼此相互依存的代码中变化情况需要花费的时间和精力。
(3)构建可持续的自动化测试:构建检查的扩展部分,构建后执行预先制定
的一套测试规则,完成后触发通知(Email,RSS等等)给相关的当事人。
(4)生成后后续过程的自动化:当自动化检查和测试成功完成,软件构建的周期中可能也需要一些额外的任务,诸如生成文档、打包软件、部署构件到一个运行环境或者软件仓库。这样,构件才能更迅速地提供给用户使用。

部署一个CI系统需要的最低要求是,一个可获取的源代码的仓库,一个包含构建脚本的项目。


该系统的各个组成部分是按如下顺序来发挥作用的:

1.开发者检入代码到源代码仓库。
2.CI系统会为每一个项目创建了一个单独的工作区。当预设或请求一次新的构建时,它将把源代码仓库的源码存放到对应的工作区。
3.CI系统会在对应的工作区内执行构建过程。
4.(配置如果存在)构建完成后,CI系统会在一个新的构件中执行定义的一套测试。完成后触发通知(Email,RSS等等)给相关的当事人。
5.(配置如果存在)如果构建成功,这个构件会被打包并转移到一个部署目标(如应用服务器)或存储为软件仓库中的一个新版本。软件仓库可以是CI系统的一部分,也可以是一个外部的仓库,诸如一个文件服务器或者像Java.net、SourceForge之类的网站。
6.CI系统通常会根据请求发起相应的操作,诸如即时构建、生成报告,或者检索一些构建好的构件。
Jenkins就是这么一个CI系统。

When

  CI系统在整个开发过程中的主要作用是控制:当系统在代码存储库中探测到修改时,它将运行构建的任务委托给构建过程本身。如果构建失败了,那么CI系统将通知相关人员,然后继续监视存储库。它的角色看起来是被动的:但它确能快速反映问题。

Why

主要用于:

持续、自动地构建/测试软件项目

监控一些定时执行的任务。

它具有以下优点:
(1)Jenkins一切配置都可以在web界面上完成。有些配置如MAVEN_HOME和Email,只需要配置一次,所有的项目就都能用。当然也可以通过修改XML进行配置。
(2)支持Maven的模块(Module),Jenkins对Maven做了优化,因此它能自动识别Module,每个Module可以配置成一个jobo相当灵活。
(3)测试报告聚合,所有模块的测试报告都被聚合在一起,结果一目了然,使用其他CI,这几乎是件不可能完成的任务。
(4)构件指纹(artifactfingerprint),每次build的结果构件都被很好的自动管理,无需任何配置就可以方便的浏览下载。

How

Jenkins安装与配置

小结

   Jenkins的使用今天就介绍到这里了,非常感谢您的阅读,如有疑问,望您不吝赐教。