编辑推荐

适读人群:《Jenkins权威指南》适合想要了解Jenkins工具以及持续集成、持续交付理念的开发和测试人员阅读,也非常适合基于Jenkins构建持续集成、持续交付平台的技术人员阅读。

通过《Jenkins权威指南》你将学到以下内容。

√学习如何安装、配置和安全加固你的Jenkins服务器

√组织管理和监控通用的构建作业

√集成自动化测试来验证构建,并建立代码质量报告

√建立有效的团队通知策略和技术

√配置构建管道、参数化的作业、矩阵构建和其他高级作业

√管理多个Jenkins服务器来运行分布式构建

√完成自动化部署和持续交付

内容简介

Jenkins权威指南》从实践者的角度,在讲解Jenkins基本原理的同时,深入到持续集成、持续交付领域,为读者梳理出如何使用Jenkins设计和实现一个自动化的、周期性的集成测试过程,帮助读者理解Jenkins适用于什么场景。书中首先介绍Jenkins以及持续集成、持续交付的基础知识;然后安装Jenkins和配置Jenkins服务器,使用Jenkins建立构建作业、进行自动化测试,介绍Jenkins支持的几种安全模式,如何使用Jenkins进行消息通知,如何确保代码质量;最后进阶展示如何建立高级的和分布式的构建,如何进行自动化的部署和交付以及对Jenkins的运维。

作者简介

JohnFergusonSmart,WakaleoConsulting的主管,帮助一些公司优化了他们的Java开发实践和基础架构。他提供一些在敏捷开发和测试实践上的培训和指导,比如持续集成,测试驱动开发,构建自动化和持续部署。

目录

序xvii
前言xix
第1章Jenkins简介1
简介1
持续集成基础1
Jenkins简介(néeHudson)3
从Hudson到Jenkins――一个简短的故事3
应该使用Jenkins还是Hudson4
引进持续集成到你的公司5
阶段1――无构建服务器5
阶段2――夜间构建6
阶段3――夜间构建加自动化测试6
阶段4――加入度量指标6
阶段5――更认真地对待测试6
阶段6――自动化验收测试和自动化部署7
阶段7――持续部署7
接下来做什么呢7
第2章迈入Jenkins的第一步9
简介9
准备环境9
安装Java10
安装Git11
创建GitHub账号11
配置SSH密钥11
创建代码库分支12
启动Jenkins13
配置工具17
配置你的Maven设置18
配置JDK19
通知20
设置Git20
你的第一个Jenkins构建作业21
你的第一个构建作业26
更多的报告――显示Javadoc33
添加代码覆盖率和其他度量34
小结40
第3章安装Jenkins41
简介41
下载和安装Jenkins41
为Jenkins准备好构建服务器44
Jenkins主目录45
在Debian或者Ubuntu系统上安装Jenkins47
在RedHat、Fedora或者CentOS上安装Jenkins48
在SUSE或者OpenSUSE上安装Jenkins49
以单机应用形式运行Jenkins49
基于Apache服务器运行Jenkins53
在应用服务器上运行Jenkins54
内存方面的考虑54
安装Jenkins为一个Windows服务55
Jenkins主目录里有什么59
备份Jenkins数据62
升级Jenkins安装63
小结64
第4章配置Jenkins服务器65
简介65
配置面板――ManageJenkins界面65
配置系统环境68
配置全局属性69
配置JDK70
配置构建工具72
Maven73
Ant74
Shell脚本75
配置版本控制工具75
配置Subversion75
配置CVS75
配置邮件服务器76
配置代理77
小结78
第5章设置构建作业79
简介79
Jenkins构建作业79
创建自由式构建作业80
通用选项81
高级项目选项82
配置源代码管理83
用Subversion工作84
使用Git86
BuildTriggers96
构建作业完成后触发下一个97
计划构建作业97
轮询SCM98
远程触发构建99
手工构建作业101
构建步骤101
Maven构建步骤102
Ant构建步骤103
执行Shell或Windows批处理命令104
在构建中使用Jenkins环境变量105
运行Groovy脚本108
用其他语言构建项目110
构建后的操作110
报告测试结果110
归档构建产物110
通知114
构建其他的项目114
运行新的构建作业115
使用Maven构建作业115
每当SNAPSHOT(快照)依赖被建立时都要进行构建116
配置Maven构建116
构建后期操作118
部署到企业仓库管理器118
部署到商业企业仓库管理器122
管理模块122
Maven构建作业中额外的构建步骤122
用其他语言使用Jenkins124
用Grails构建项目124
用Gradle构建项目126
用VisualStudioMSBuild构建项目129
用NAnt构建项目130
使用Ruby和RubyonRails构建项目130
小结132
第6章自动化测试133
简介133
自动化单元和集成测试134
在Jenkins中配置测试报告135
显示测试结果137
忽略测试140
代码覆盖率142
使用Cobertura测量代码覆盖率143
使用Clover测量代码覆盖率152
自动化验收测试154
JMeter自动化性能测试157
请求帮助!我的测试运行得太慢了165
添加更多的硬件166
运行更少的集成/功能测试166
并行运行测试167
小结167
第7章Jenkins安全169
简介169
激活Jenkins安全169
Jenkins安全实例170
安全域――定义Jenkins用户171
使用Jenkins内置用户数据库171
使用LDAP仓库174
使用微软活动目录176
使用UNIX用户和用户组177
Servlet容器授权177
使用AtlassianCrowd178
与其他系统集成179
授权――谁可以做什么181
安全矩阵181
基于项目的安全185
基于角色的安全188
审计――跟踪用户行为190
小结193
第8章通知195
简介195
电子邮件通知195
更高级的电子邮件通知197
声明构建200
RSS订阅202
构建分发器202
即时消息204
用Jabber进行IM通知204
使用IRC的IM通知209
IRC通知209
桌面通知器212
通过Notifo通知213
移动通知216
短信通知216
制造噪声219
极端反馈设备221
小结222
第9章代码质量225
简介225
构建过程中的代码质量226
受欢迎的Java和Groovy代码质量分析工具227
Checkstyle227
PMD/CPD230
FindBugs235
CodeNarc237
使用Violations插件报告代码质量问题238
与自由风格下的构建作业一起工作239
使用Maven构建作业242
使用Checkstyle、PMD和FindBugs报告244
报告代码复杂度247
报告未完成的任务248
集成Sonar249
小结253
第10章高级构建255
简介255
参数化构建作业255
创建一个参数化构建作业256
为构建适配参数化构建脚本257
高级参数类型259
使用Subversion标签构建260
使用Git标签构建261
远程启动参数化构建作业262
参数化构建作业历史263
参数化触发263
多重结构的构建作业266
搭建多重结构构建266
配置从节点轴267
配置JDK轴268
自定义轴268
执行多重结构构建268
自动生成Maven构建作业271
配置作业271
使用继承复用作业配置273
插件支持275
自由式作业278
构建协作278
在Jenkins中并行构建279
依赖关系图279
连接280
LocksandLatches插件281
构建管道及优化282
通过M2Release插件管理Maven版本发布283
复制构建产物286
构建进阶289
汇总测试结果295
构建管道296
小结299
第11章分布式构建301
简介301
Jenkins分布式构建架构301
Jenkins主/从策略302
主节点使用SSH启动从节点代理303
使用JavaWebStart手工启动从代理307
把Jenkins从节点安装为Windows服务309
无主节点模式启动从节点310
以远程服务方式启动Windows从节点310
把构建作业与一个或一组从节点关联311
节点监控313
云计算314
使用AmazonEC2314
使用CloudBeesDEV@cloud服务318
小结319
第12章自动化部署和持续交付321
简介.321
实现自动化和持续部署322
部署脚本322
数据库更新322
冒烟测试325
回滚更改326
部署到应用程序服务器上326
部署一个Java应用327
部署像Ruby和PHP这样基于脚本的应用程序336
小结339
第13章Jenkins的维护341
简介341
监控磁盘空间341
使用DiskUsage插件343
磁盘使用及JenkinsMaven项目类型344
监控服务器负载345
备份配置346
Jenkins备份基础346
使用备份插件348
更为轻量的自动备份350
构建作业归档350
构建迁移351
小结355
附录A自动化你的单元和集成测试357
索引367

前言/序言

  译者序
  2013年末,由于工作需求,我们开始在团队内部全面实施持续集成、持续交付作业流程,持续集成和持续交付改变了我们从源码管理到产品发布的整个流程。要知道,我们曾经有过一段时间都在忙碌的打包、发包中度过,那可是非常痛苦的。
  Jenkins作为持续集成、持续交付领域内的优秀开源软件,自然而然地成为我们在项目中大量运用的工具。我们在Jenkins的优化配置以及运用上积累了丰富的经验,所以想花时间翻译一下这《Jenkins权威指南》,其一是对我们所学知识的再学习和巩固,其二是想对自由与开源软件在国内的推广做一些文档汉化的事情。
  Jenkins已经成为持续集成、持续交付工具链中一个非常重要的部分。它是一款高效易用的工具,而且是开源的,提供了很多种类的插件供用户使用。但是,真正地掌握好Jenkins的使用并不是一件轻松的事情,如何更好地运用Jenkins创建出高效、稳定、灵活的作业流是从事持续集成、持续交付的人员所面临的问题。
  《Jenkins权威指南》就是一本能够让持续集成、持续交付人员轻松面对这一问题的书籍。《Jenkins权威指南》基于作者优秀的实践经验,为读者梳理出如何使用Jenkins设计和实现一个高效、灵活的持续集成、持续交付作业流,帮助读者理解Jenkins适用于什么场景,让读者学会如何使用Jenkins去考虑和解决实际问题。
  非常感谢电子工业出版社的付睿编辑对《Jenkins权威指南》翻译工作的大力支持,还要感谢李云静编辑对《Jenkins权威指南》校对做出的贡献。
  《Jenkins权威指南》由郝树伟、于振苓、熊熠三人共同翻译。由于水平有限,书中出现错误与不妥之处在所难免,恳请读者批评指正。
  译者
  2016年9月
  序
  七年前我为Jenkins的项目写了第一行代码,它最初被称为Hudson。我是那个曾经破坏过构建的人,所以我需要一个程序在我同事发现错误之前捕捉到错误。这只是一个简单的工具,并且只做了一件简单的事情。但它迅速发展,现在我想它是在整个市场上最占主导地位的CI服务器,包括广泛的插件系统、商业分布、Jenkins即服务式的托管、用户组、分享会、培训等。
  与我的其他项目一样,这个项目从成立以来就是开源的。它的生命,主要依赖于他人的帮助和关爱,没有这一点,项目就不会是当前的状态。在这段时间里,我也学到了一些关于运作开源项目的经验。从这一经验,我认为人们往往忽略有很多方法可以帮助一个开源项目,写代码仅是其中的一个。还有宣传、帮助其他用户、组织分享会,当然还有写文档。
  从这个意义上来说,John是Jenkins社区的重要组成部分,即使他没有贡献代码——相反,他让新用户更容易接受Jenkins。例如,他有一个很多人关注的博客,在那里他经常谈论关于持续集成的做法和其他软件开发的主题。他善于解释事情,即使是刚接触到Jenkins的人们也可以理解它们,像我这样每天开发Jenkins的人通常是很难想象的。他的培训课程也是众所周知的,Jenkins是其中的一部分。这是让更多的人接触到Jenkins的另一种方式。他显然有宣传新的思想和指导开发人员更加高效的激情。
  这些天我把我的时间花在CloudBees开源Jenkins上,用JenkinsCloudBeespro版本,我们在Jenkins之上构建了插件,并且用CloudBeesDEV@cloud服务把Jenkins部署到私有以及公有云。在这个角色中,我与John比以前有了更多的互动,我更加尊重他的激情。
  所以他承担了写一本关于Jenkins的书的艰巨任务,我真的很高兴。这《Jenkins权威指南》提供了关于持续集成的主要经典部分的伟大概述。而对我个人来说,我总是被问及是否有一本关于Jenkins的书,现在我终于可以肯定地回答这个问题了!但更重要的是,这《Jenkins权威指南》反映了他的激情,以及他在教人们如何使用Jenkins方面的长期经验与其他东西。但是不要仅仅相信我的话。你需要自己去读,亲自去感受。
  ——KohsukeKawaguchi
  Jenkins项目创建者及CloudBees架构师


其他推荐