环境概述
随着软件开发需求及复杂度的不断提高,团队开发成员之间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。Jenkins 自动化部署可以解决集成、测试、部署等重复性的工作,工具集成的效率明显高于人工操作;并且持续集成可以更早的获取代码变更的信息,从而更早的进入测试阶段,更早的发现问题,这样解决问题的成本就会显著下降;持续集成缩短了从开发、集成、测试、部署各个环节的时间,从而也就缩短了中间出现的等待时间;持续集成也意味着开发、集成、测试、部署得以持续。所以,当配置完 Jenkins 持续集成持续交付环境后,就可以把发布的任务交给集成服务器去打理了。使用 Maven(Ant)等来实现 java 项目自动化构建发布部署。这些工具可以帮助在构建过程中实现自动化发布、回滚等操作。
Jenkins 简介
Jenkins 是一个用 java 编写的开源的持续集成工具。在与 Oracle 发生争执后,项目从 Hudson 项目独立。官方网站:https://jenkins.io/
Jenkins
Jenkins和Hundson是最流行的一款集成及自动化部署工具。
Jenkins和Hundson之间的关系:2009年,甲骨文收购了Sun并继承了Hundson代码库。在2011年初,甲骨文和开源社区之间的关系破裂,该项目分成了两个独立的项目:
Jenkins:由大部分原始开发人员组成
Hundson:由甲骨文公司继续管理
Jenkins 是一个用Java编写的开源的持续集成工具
官方网站:https://jenkins.io/
Jenkins 能实时监控持续集成过程中所存在的问题,提供详细的日志文件和提醒功能,还能用图表的形式,形象地展示项目构建的趋势和稳定性。
Jenkins特点
易安装:仅仅一个 Jenkins.war,从官网下载该文件后,直接运行,无需额外的安装,更无需安装数据库
易配置:提供友好的 GUI 配置界面
变更支持:Jenkins 能从代码仓库(SVN/Git)中获取并产生代码更新列表,并输出到编译输出信息中
支持永久链接:用户是通过 Web 来访问 Jenkins 的,而这些 Web 页面的链接地址都是永久链接地址,可以在各种文档中直接使用该链接;
集成 E-Mail/RSS/IM:当完成一次集成时,可通过这些工具实时收取集成结果(构建一次集成需要花费一定时间,有了这个功能,就可以在等待结果过程中,干别的事情);
JUnit/TestNG 测试报告:也就是用以图表等形式提供详细的测试报表功能;
支持分布式构建:Jenkins 可以把集成构建等工作分发到多台计算机中完成;
文件指纹信息:Jenkins 会保存构建集成所产生的 jars 文件、集成构建使用了哪个版;
支持第三方插件:Jenkins 支持 第三方插件,这使得 Jenkins 功能变得越来越强大。
持续集成主要是强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。简单来讲就是:频繁地(一天多次)将代码集成到主干。
Jenkins 的工作原理是就是将源代码从 SVN/Git 版本控制系统汇总拷贝一份到本地,然后根据设置的脚本进行build(构建)。整个系统的关键就是 build 脚本,build 脚本告诉Jenkins在一次集成中需要执行的任务。
Maven 介绍
Maven 就是构建 java 里面的一个 war 包的。
Maven 项目对象模型(POM)是可以通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。
Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于Maven的缺省构建规则有较高的可重用性,所以常常用两三行Maven构建脚本就可以构建简单的项目。
由于Maven的面向项目的方法,许多Apache Jakarta 项目发文时使用Maven,而且公司项目采用Maven的比例在持续增长。