jenkins学习 01 jenkins介绍

jenkins 是一个可扩展的持续集成引擎。web

使用Jenkins目的:服务器

  • 持续、自动地构建/测试软件项目。
  • 监控一些定时执行的任务。

jenkins拥有的特性:app

  • 易于安装,只要jenkins.war部署到servlet容器(好比直接放到Tomcat的webapps下面),就能够运行。
  • 易于配置,配置都是在其提供的web界面实现。
  • 集成RSS/E-mail经过RSS发布构建结果或用e-mail通知。
  • 生成JUnit/TestNG测试报告。
  • 分布式构建支持。jenkins可以让多态计算机一块儿构建、测试。
  • 文件识别:jenkins可以跟踪哪次构建生成哪些jar包,哪次构建使用哪一个版本的jar包
  • 插件支持:支持扩展插件。

jenkins的由来:webapp

 

目前持续集成(CI)已经成为 软件开发团队在整个开发声明周期内侧重于保证代码质量的常见作法。它是一种实践,旨在缓和和稳固软件的构建过程。而且帮助开发团队应对以下挑战:分布式

  • 软件构建自动化:配置完成后,CI系统依照预先指定的时间表,或者针对某一特定事件,对目标软件进行构建。
  • 构建可持续的自动化检查:CI系统能持续的获取新增或修改后签入的源代码,也就是说,当软件开发团队须要周期性的检查新增或修改后的代码时,CI系统会不断确认这些代码是否破坏了原有软件的成功构建。
  • 构建可持续的自动化测试:构建检查的扩展部分,构建后执行预先定义的一套测试规则,完成后触发通知(E-mail, RSS )给相关的当事人。
  • 生成后续过程的自动化:当自动化检查和测试成功完成,软件构建的周期中可能也须要一些额外的任务,诸如生成文档、打包软件、部署构建到一个运行环境或软件仓库。

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

下图是CI系统的基本结构:优化

该系统的各个组成部分是按以下顺序发挥做用的:网站

1: 开发者检入代码到源代码仓库。ui

2:CI系统会为每个项目建立一个单独的工做区。当预设或请求一次新的构建时,它将源代码仓库的源代码存放到工做区。spa

3:CI系统会在对应的工做区内执行构建过程。

4: (配置若是存在)构建完成后,CI系统会在一个新的构件中执行定义的一套测试。完成后触发通知(E-mail, RSS)给相关的当事人。

5: (配置若是存在)若是构建成功,这个构件会被打包并转移到一个部署目标(如应用服务器)或存储为软件仓库中的一个新版本。软件仓库能够是CI系统的一部分,也能够是一个外部的仓库,诸如一个文件服务器或网站。

6:CI系统一般会根据请求发起相应的操做,诸如即时构建、生成报告、或者检索一些构建好的构件。

 

Jenkins就是这么一个CI系统,以前叫作Hudson。

使用Jenkins的理由:

  • 是全部CI产品中,安装和配置上最简单的。
  • 基于web访问,用户界面友好
  • Jenkins是基于JAVA开发的,但它不只限于构建基于JAVA的软件。
  • Jenkins拥有大量的插件。

 CI系统在整个开发过程当中的主要做用是:当系统在代码存储库中探测到修改时,它将运行构建的任务委托给构建过程本事。若是构建失败,CI系统会通知相关人员,而后继续监视存储库。

       

特别是它具备如下优势:

  • Jenkins一切配置均可以在web界面上完成。有些配置如MAVEN_HOME和Email,只须要配置一次,全部的项目就都能用。固然也能够经过修改XML进行配置。
  • 支持Maven的模块(Module),Jenkins对Maven作了优化,所以它能自动识别Module,每一个Module能够配置成一个job。至关灵活。
  • 测试报告聚合,全部模块的测试报告都被聚合在一块儿,结果一目了然,使用其余CI,这几乎是件不可能完成的任务。
  • 构件指纹(artifact fingerprint),每次build的结果构件都被很好的自动管理,无需任何配置就能够方便的浏览下载。
相关文章
相关标签/搜索