---
url: /jenkins.md
---
## jenkins

> Jenkins 是一个可扩展的持续集成引擎。

持续集成，就是通常所说的 CI（Continues Integration），可以说是现代软件技术开发的基础。

持续集成是一种软件开发实践，即团队开发成员经常集成他们的工作，通常每个成员至少集成一次，也意味着每天可能会发生多次集成。

每次集成都通过自动化的构建（包括编译，发布，自动化测试）来验证，从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题，让团队能够更快的开发内聚的软件。

二、Jenkins 用处

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

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

三、Jenkins 特性

1、易于安装。只要把 jenkins.war 包部署到 servlet 容器即可，不需要数据库的支持。

2、易于配置。所有的配置都是通过其提供的 web 界面实现得。

3、集成 RSS/E-mail 通过 RSS 发布构建结果或当构建完成时通过 E-mail 通知相关人员以及负责人。

3、生成 Junit/testNG/HTMLTestRunner 测试报告

4、分布式构建支持 jenkins 能够让多台计算机一起构建、测试。

5、文件识别。 jenkins 能够跟踪那次构建生成那些 jar，那次构建使用哪个版本的 jar 等。

6、插件支持。支持扩展插件，你可以开发适合自己团队使用的工具。

四、jenkins 由来
持续集成(CI)目前已成为许多软件开发团队在整个软件开发生命周期内侧重于保证代码质量的常见做法。它是一种实践，旨在缓和和稳固软件的构建过程。并且能够帮助开发团队应对如下挑战：

1、软件构建自动化 ：

配置完成后，CI 系统会依照预先制定的时间表，或者针对某一特定事件，对目标软件进行构建。

2、建可持续的自动化检查 ：

CI 系统能持续地获取新增或修改后签入的源代码，也就是说，当软件开发团队需要周期性的检查新增或修改后的代码时，CI 系统会不断确认这些新代码是否破坏了原有软件的成功构建。这减少了开发者们在检查彼此相互依存的代码中变化情况需要花费的时间和精力。

3、构建可持续的自动化测试 ：

构建检查的扩展部分，构建后执行预先制定的一套测试规则，完成后触发通知(Email,RSS 等等)给相关的当事人。

4、生成后后续过程的自动化 ：

当自动化检查和测试成功完成，软件构建的周期中可能也需要一些额外的任务，诸如生成文档、打包软件、部署构件到一个运行环境或者软件仓库。这样，构件才能更迅速地提供给用户使用。

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