Jenkins权威指南
  • 推荐0
  • 收藏10
  • 浏览2.3K

Jenkins权威指南

John Ferguson Smart (作者)  郝树伟 (译者) 李云静 (责任编辑)

  • 书  号:978-7-121-29906-3
  • 出版日期:2016-10-17
  • 页  数:408
  • 开  本:16(178*233)
  • 出版状态:上市销售
  • 原书名: Jenkins: The Definitive Guide
  • 原书号:9781449305352
  • 维护人:付睿
本书从实践者的角度,在讲解Jenkins基本原理的同时,深入到持续集成、持续交付领域,为读者梳理出如何使用Jenkins设计和实现一个自动化的、周期性的集成测试过程,帮助读者理解Jenkins适用于什么场景。书中首先介绍Jenkins以及持续集成、持续交付的基础知识;然后安装Jenkins和配置Jenkins服务器,使用Jenkins建立构建作业、进行自动化测试,介绍Jenkins支持的几种安全模式,如何使用Jenkins进行消息通知,如何确保代码质量;最后进阶展示如何建立高级的和分布式的构建,如何进行自动化的部署和交付以及对Jenkins的运维。
本书是向你展示了如何使用Jenkins自动化你的构建、集成、发布和开发过程的完全指南
译者序
2013 年末,由于工作需求,我们开始在团队内部全面实施持续集成、持续交付作业流程,持续集成和持续交付改变了我们从源码管理到产品发布的整个流程。要知道,我们曾经有过一段时间都在忙碌的打包、发包中度过,那可是非常痛苦的。
Jenkins 作为持续集成、持续交付领域内的优秀开源软件,自然而然地成为我们在项目中大量运用的工具。我们在Jenkins 的优化配置以及运用上积累了丰富的经验,所以想花时间翻译一下这本书,其一是对我们所学知识的再学习和巩固,其二是想对自由与开源软件在国内的推广做一些文档汉化的事情。
Jenkins 已经成为持续集成、持续交付工具链中一个非常重要的部分。它是一款高效易用的工具,而且是开源的,提供了很多种类的插件供用户使用。但是,真正地掌握好Jenkins 的使用并不是一件轻松的事情,如何更好地运用Jenkins 创建出高效、稳定、灵活的作业流是从事持续集成、持续交付的人员所面临的问题。
本书就是一本能够让持续集成、持续交付人员轻松面对这一问题的书籍。本书基于作者优秀的实践经验,为读者梳理出如何使用Jenkins 设计和实现一个高效、灵活的持续集成、持续交付作业流,帮助读者理解Jenkins 适用于什么场景,让读者学会如何使用Jenkins去考虑和解决实际问题。
非常感谢电子工业出版社的付睿编辑对本书翻译工作的大力支持,还要感谢李云静编辑对本书校对做出的贡献。
全书由郝树伟、于振苓、熊熠三人共同翻译。由于水平有限,书中出现错误与不妥之处在所难免,恳请读者批评指正。
译者
2016 年9 月


七年前我为Jenkins 的项目写了第一行代码,它最初被称为Hudson。我是那个曾经破坏过构建的人,所以我需要一个程序在我同事发现错误之前捕捉到错误。这只是一个简单的工具,并且只做了一件简单的事情。但它迅速发展,现在我想它是在整个市场上最占主导地位的CI 服务器,包括广泛的插件系统、商业分布、Jenkins 即服务式的托管、用户组、分享会、培训等。
与我的其他项目一样,这个项目从成立以来就是开源的。它的生命,主要依赖于他人的帮助和关爱,没有这一点,项目就不会是当前的状态。在这段时间里,我也学到了一些关于运作开源项目的经验。从这一经验,我认为人们往往忽略有很多方法可以帮助一个开源项目,写代码仅是其中的一个。还有宣传、帮助其他用户、组织分享会,当然还有写文档。
从这个意义上来说,John 是Jenkins 社区的重要组成部分,即使他没有贡献代码——相反,他让新用户更容易接受Jenkins。例如,他有一个很多人关注的博客,在那里他经常谈论关于持续集成的做法和其他软件开发的主题。他善于解释事情,即使是刚接触到Jenkins的人们也可以理解它们,像我这样每天开发Jenkins 的人通常是很难想象的。他的培训课程也是众所周知的,Jenkins 是其中的一部分。这是让更多的人接触到Jenkins 的另一种方式。他显然有宣传新的思想和指导开发人员更加高效的激情。
这些天我把我的时间花在CloudBees 开源Jenkins 上,用Jenkins CloudBees pro 版本,我们在Jenkins 之上构建了插件,并且用CloudBees DEV@cloud 服务把Jenkins 部署到私有以及公有云。在这个角色中,我与John 比以前有了更多的互动,我更加尊重他的激情。
所以他承担了写一本关于Jenkins 的书的艰巨任务,我真的很高兴。这本书提供了关于持续集成的主要经典部分的伟大概述。而对我个人来说,我总是被问及是否有一本关于Jenkins 的书,现在我终于可以肯定地回答这个问题了!但更重要的是,这本书反映了他的激情,以及他在教人们如何使用Jenkins 方面的长期经验与其他东西。但是不要仅仅相信我的话。你需要自己去读,亲自去感受。
——Kohsuke Kawaguchi
Jenkins 项目创建者及CloudBees 架构师


前言
读者对象
本书针对技术相关的读者(即使他们以往可能没有关于持续集成的经验)。你可能是个刚接触持续集成领域的新人,并想了解它能为你的开发团队带来哪些益处。又或者你可能正在使用Jenkins 或Hudson,并想深入了解如何能进一步地将自己的持续集成架构进行提升。
本书主要在Java 以及JVM 相关项目的范围内讲解Jenkins。但是如果你正使用其他技术架构,本书将为你展示Jenkins 持续集成的优秀生态。我们会讨论如何使用多种非Java技术进行项目构建,包括Grails、Ruby on Rails 以及.NET。除此之外,还有诸如综合配置、通知、分布式构建和安全等均良好地支持多种国际语言。
书籍编排
持续集成就像很多东西:你投入得越多,就能得到越多的价值。即使搭建一个基本的持续集成,也将能为你的团队流程改进起到积极的作用,它还有着逐步接收及实现一些更高级技术的显著优势。本书会逐渐深入Jenkins 的持续集成世界,从易到难。在第1 章中,我们从Jenkins 的全面概述开始,从全局角度进行了解。之后,我们会介绍如何安装和配置Jenkins 服务器以及如何搭建基本的构建作业。当我们掌握了基本知识后,将继续深入更高级的主题,包括自动化测试、安全性、高级通知技术和代码质量报告。接下来,我们在讨论如何利用Jenkins 使用持续部署之前,将讨论更高级的构建技术,如矩阵构建,以及分布式构建和云端持续集成。最后,我们会介绍维护Jenkins 服务器的一些技巧。
是Jenkins,还是Hudson
Jenkins 从开始直到最近都以Hudson 而被熟知。在2009 年,甲骨文收购了Sun 并继承了Hudson 代码库。在2011 年年初,甲骨文和开源社区之间的关系破裂,该项目被分成两个独立的项目:Jenkins,由大部分原始Hudson 开发人员组成;甲骨文管理的Hudson。
正如书名所示,本书主要关注Jenkins。本书的大部分内容写于分支拆分前,不过拆分后两种产品仍然非常相似。所以,尽管示例和插图通常来源于Jenkins,但大部分讨论的内容却同样适用于Hudson。
字体规范
本书遵循特定的字体使用规则约定。理解这些约定有助于更容易地学习本书。
斜体(Italic)
用于文件名、文件扩展名、URL、应用程序名称、强调和首次介绍的新名称。
等宽字体(Constant width)
用于Java 类名、方法、变量、属性、数据类型、数据库元素以及出现在正文中的代码片段。
加粗的等宽字体(Constant width bold)
用于输入的命令行和高亮显示插入运行示例中的新代码。
等宽斜体(Constant width italic)
用于注释和输出。
命令行规范
本书常常会讨论到命令行指令。当我们在控制台操作时,将得到的输出结果(例如,命令提示或屏幕输出)以普通字符格式显示,命令(输入的)以加粗格式显示。例如:
$ ls -al
total 168
drwxr-xr-x 16 johnsmart staff 544 21 Jan 07:20 .
drwxr-xr-x+ 85 johnsmart staff 2890 21 Jan 07:10 ..
-rw-r--r-- 1 johnsmart staff 30 26 May 2009 .owner
-rw-r--r--@ 1 johnsmart staff 1813 16 Apr 2009 config.xml
drwxr-xr-x 181 johnsmart staff 6154 26 May 2009 fingerprints
drwxr-xr-x 17 johnsmart staff 578 16 Apr 2009 jobs
drwxr-xr-x 3 johnsmart staff 102 15 Apr 2009 log
drwxr-xr-x 63 johnsmart staff 2142 26 May 2009 plugins
-rw-r--r-- 1 johnsmart staff 46 26 May 2009 queue.xml
-rw-r--r--@ 1 johnsmart staff 64 13 Nov 2008 secret.key
-rw-r--r-- 1 johnsmart staff 51568 26 May 2009 update-center.json
drwxr-xr-x 3 johnsmart staff 102 26 May 2009 updates
drwxr-xr-x 3 johnsmart staff 102 15 Apr 2009 userContent
drwxr-xr-x 12 johnsmart staff 408 17 Feb 2009 users
drwxr-xr-x 28 johnsmart staff 952 26 May 2009 war
在必要时,在一行结尾的反斜杠字符用于代表一行的结束:如果你愿意,可以在一行中全部输入(没有反斜杠)。不要忘记忽略换行后的起始字符“>”——它是UNIX 提示字符。
$ wget -O - http://jenkins-ci.org/debian/jenkins-ci.org.key \
> | sudo apt-key add –
为了一致性,除非我们在讨论Windows 的问题,否则都将采用UNIX 风格的命令提示符(美元符号“$”),如下所示:
$ java -jar jenkins.war

$ svn list svn://localhost
然而,除非我们说明用另外的方式,否则Windows 用户可以安全地在Windows 命令控制台使用这些命令:
C:\Documents and Settings\Owner> java -jar jenkins.war

C:\Documents and Settings\Owner> svn list svn://localhost
贡献人
本书不是我独自写的。相反,它是由多人分工协作完成的。特别是以下人员慷慨地贡献了自己的宝贵时间、知识和协作技巧,使得本书更加完善:
Evgeny Goldin 是一位出生于俄国而生活在以色列的软件工程师。他带领并负责汤森路透(Thomson Reuters)开发人员的诸多工作,其中一些直接关系到Maven、Groovy 以及如Artifactory、Jenkins 的构建工具。他有丰富的经验和技术,包括Perl、Java、JavaScript 和Groovy。构建工具和动态语言是Evgeny 最喜欢的,他经常用到、展示并写进博客。最近他正在为GroovyMag 杂志撰写Methods&Tools,同时还运行维护了他自己的两个开源项目:Maven-plugins(http://evgeny-goldin.com/wiki/Maven-plugins)和GCommons(http://evgeny-goldin.com/wiki/GCommons)。他的博客地址是http://evgeny-goldin.com/blog,还能用@evgeny_golin 在Twitter 上找到他。
Evgeny 贡献了第10 章的自动生成Maven 构建作业内容。
Matthew McCullough 是一个精力充沛的人,拥有15 年企业级软件开发及开源教育经验,他同时还是一家位于丹佛名为Ambient Ideas 的咨询机构的联合创始人之一。Matthew 现在是GitHub.com 的培训师,是O’Reilly 出版的Git Master Class 系列书的作者。其在30 多个国家和国际会议上发表过演讲,他还是DZone RefCards 排名前十的作者,也是丹佛开源用户组主席。他目前的研究课题是项目自动化:构建工具(Maven,Leiningen,Gradle)、分布式版本控制(Git)、持续集成(Jenkins)以及代码质量度量(Sonar)。Mat thew 和他美丽的妻子以及两个年幼的女儿一起居住在科罗拉多州的丹佛,他几乎积极参与科罗拉多州的任何一项室外活动。
Matthew 撰写了第5 章的Jenkins 集成Git 部分的内容。
Juven Xu 是一位来自中国的在Sonatype 工作的软件工程师。他是一个活跃的开源社区成员、Maven 认证专家。Juven 还负责Maven:The Definitive Guide 的中文翻译,这本书被当作Maven 项目上最原始的中文参考手册。他当前也在致力于本书的中文翻译工作。
Juven 撰写了第8 章中的IRC 通知部分。
Rene Groeschke 是Cassidian Systems(原名EADS Deutschland GmbH)公司的一名软件工程师,也是位开源爱好者。他拥有七年多个Java 企业级项目开发工作经验的认证ScrumMaster,他特别关注于敏捷方法,如持续集成和测试驱动开发。除了日常工作,腓特烈港的Corporate Education 大学还聘请他为信息技术专业本科学生进行Scrum 及其相关课题的讲座。
Rene 撰写了第5 章Gradle 构建项目部分。
评审小组
这本书的技术评审过程采取的方法与其他大部分图书有些不同。不是让一两个技术评审人在本书撰写工作接近尾声时通读全书,而是让一队Jenkins 社区的志愿者,包括很多核心Jenkins 开发人员在本书撰写的时候就可以阅读一些章节的内容。这个评审小组由以下人员组成:Alan Harder,Andrew Bayer,Carlo Bonamico,Chris Graham,Eric Smalling,Gregory Boissinot,Harald Soevik,Julien Simpson,Juven Xu,Kohsuke Kawaguchi,Martijn Verberg,Ross Rowe,Tyler Ballance。
图书赞助商
因为众多组织给予了撰写图书过程的资金帮助,所以本书得以顺利完成。
Wakaleo 咨询
Wakaleo(http://www.wakaleo.com)是一家咨询公司,帮助企业优化他们的软件开发流程。由John Ferguson 领导,他是本书和Java Power Tools(http://oreilly.com/catalog/9780596527938)的作者,Wakaleo 咨询提供Java 敏捷开发和测试实践、软件开发生命周期优化以及敏捷方法论的咨询、培训和顾问服务。
Wakaleo 在一些如持续集成、构建自动化、测试驱动开发、自动化Web 测试和代码整洁领域提供帮助并培训企业,使用的开源工具包括Maven、Jenkins、Selenium 2 和Nexus。Wakaleo 咨询也提供公共和现场关于持续集成和持续部署、构建自动化、代码整洁实践、测试驱动开发和行为驱动开发的培训,以及Scrum 开发(CSD)认证课程。
CloudBees
CloudBees(http://www.cloudbees.com)是唯一一家专注于云端完整的Java Web 应用程序开发- 部署生命周期服务的云公司。这个公司也是Jenkins/Hudson 持续集成工具世界上首屈一指的专家。
Jenkins/Hudson 创建者Kohsuke Kawaguchi 领导了全球CloudBees 专家小组。他们创造了Nectar,一个订阅预置且支持增强的Jenkins 版本。如果你依赖Jenkins 处理关键软件流程,Nectar 提供高度测试、稳定且全方位支持的Jenkins 版本。它还包括Nectar 独有的功能,如自动调整VMware 虚拟机。
如果你准备探索云端持续集成,CloudBees 将Jenkins/Hudson 集成进它的DEV@cloud构建平台的一部分。从Jenkins 开始并不需要前期在构建服务器方面花费大量投资,且没有性能限制和维护麻烦。当一个应用已经准备上线,你只需轻点几次鼠标就能将其作为服务部署到CloudBees 的RUN@cloud 平台。
使用CloudBees 的DEV@cloud 和RUN@cloud 服务,你无须担心服务器、虚拟机以及IT 人员。和Nectar 一起用,你会喜欢对Jenkins 最强大的、稳定的支持。
Odd-e
Odd-e(http://www.odd-e.com)是个亚洲公司,以创新的方法构建产品并帮助别人实现相同的目标。其团队由有经验的教练和产品开发人员组成,他们在工作中一致追求迭代、敏捷、简洁、精致的价值观,公司的组织架构也是如此。例如,Odd-e 没有一个层次性组织,也没有管理人员为他人做决定。相反,个人自我组织并且使用所有的技能来提高其竞争力。公司提供培训和后续督导帮助他人寻求更好的工作方式来合作。
不是工作而是价值观让Odd-e 凝聚在一起。它的成员喜欢构建软件以及价值观的学习和贡献,而不是利润最大化,并致力于支持亚洲开源的发展。
使用代码示例
本书是一本开放源代码的书,在创作共用许可证(Creative Commons License)下出版。本书的英文原版书用DocBook 编写,使用XmlMind。这本书的源代码可以在https://github.com/wakaleo/jenkins-the-definitive-guide-book 的GitHub 找到。
本书中的Jenkins 项目使用的示例是开源的并且可以在网上免费获得——在http://www.wakaleo.com/books/jenkins-the-definitive-guide 提供了更多细节性的指导。
本书的目的是帮助你完成工作。一般情况下,你可以在自己的程序和文档中使用本书的代码。除非你复制大量的代码,否则不必与我们联系许可。例如, 使用本书的几块代码编写程序不需要许可。销售或分销O’Reilly 图书光盘的例子需要许可。引用这本书和引用示例代码来回答问题不需要许可。把来自本书的大量示例代码应用到你的产品文档确实需要许可。
我们对注明版权归属的行为表示赞赏,但不强制要求。一个归属通常包括作品名称、作者、出版商和ISBN。例如,“Jenkins: The Definitive Guide by John Ferguson Smart (O’Reilly).Copyright 2011 John Ferguson Smart,978-1-449-30535-2.”
如果你觉得自己的示例代码使用不在正当使用或上面给出的许可范围内,请随时与我们联系:permissions@oreilly.com。
Safari? Books Online
Safari Books Online 是一个按需点阅的数字图书馆,可让你轻松地搜索超过7500 种技术和创造性的参考书籍和视频,并快速找到所需的答案。
有了订阅,你可以阅读任何页面,并从我们的在线图书馆观看任何视频。阅读你的手机和移动设备上的书。访问新的标题之前,它们可供打印,并获得独家访问的开发手稿和作者的反馈。复制和粘贴示例代码,整理你最喜欢的书籍,下载章节,标记关键部分,创建注释,打印页面,并从其他节省时间的特性上受益。
O’Reilly 媒体把这本书上传到了Safari Books Online 服务。为了获取该书的全部数字访问权限以及O’Reilly 和其他出版商的其他类似主题, 可免费注册http://my.safaribooksonline.com。

联系我们
请将对本书的评价和发现的问题通过如下地址告知出版者。
美国:
O’Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
中国:
北京市西城区西直门南大街2 号成铭大厦C 座807 室(100035)
奥莱利技术咨询(北京)有限公司

我们有这本书的网页,在那里我们列出了勘误表、实例和任何附加的信息。你可以访问此页:
http://www.oreilly.com/catalog/9781449305352
评论或询问这本书的技术问题,请发送电子邮件至:
bookquestions@oreilly.com
关于书籍、课程、会议和新闻的更多信息,请访问我们的网站:http://www.oreilly.com。
在Facebook 找到我们:http://facebook.com/oreilly
在Twitter 跟随我们:http://twitter.com/oreillymedia
在YouTube 上观看我们:http://www.youtube.com/oreillymedia
致谢
首先,要感谢我的好妻子Chantal 以及孩子们James 和William,没有你们的爱、支持和宽容,这本书是不可能完成的。
我要感谢Mike Loukides 再次和我一起从事这本书以及整个O’Reilly 团队高标准的工作。
谢谢Kohsuke Kawaguchi 创建了Jenkins,并一直是这个伟大产品背后的驱动力。还要感谢Francois Dechery、SachaLabourey、Harpreet Singh 以及CloudBees 团队其他成员的帮助和支持。
我也很感谢那些花了时间和精力为本书做出贡献的人:Evgeny Goldin、Matthew McCullough、Juven Xu 以及 Rene Groeschke。
非常感谢下面的审稿人,他们在整个写作过程中,提供了宝贵的反馈意见:Alan Harder,Andrew Bayer,Carlo Bonamico,Chris Graham,Eric Smalling,Gregory Boissinot,Harald Soevik,Julien Simpson,Juven Xu,Kohsuke Kawaguchi,Martijn Verberg,Ross Rowe,Tyler Balance。
感谢Andrew Bayer、Martijn Verburg、Matthew McCullough、Rob Purcell、Ray King、Andrew Walker 等人,他们的讨论和反馈给了我此书的灵感和想法。
还有许多人对本书的顺利完成提供了各种帮助,这使本书比原来更加丰富和完整:Geoff and Alex Bullen,Pete Thomas,Gordon Weir,Jay Zimmerman,Tim O’Brien,Russ Miles,Richard Paul,Julien Simpson, John Stevenson,Michael Neale,Arnaud Héritier,Manfred Moser。
最后十分感谢Hudson/Jenkins 开发人员和用户社区持续的鼓励和支持。

目录

目录
序 xvii
前言 xix
第1 章 Jenkins 简介 1
简介 1
持续集成基础 1
Jenkins 简介(née Hudson) 3
从Hudson 到Jenkins——一个简短的故事 3
应该使用Jenkins 还是Hudson 4
引进持续集成到你的公司 5
阶段1——无构建服务器 5
阶段2——夜间构建 6
阶段3——夜间构建加自动化测试 6
阶段4——加入度量指标 6
阶段5——更认真地对待测试 6
阶段6——自动化验收测试和自动化部署 7
阶段7——持续部署 7
接下来做什么呢 7
第2 章 迈入Jenkins 的第一步 9
简介 9
准备环境 9
安装Java 10
安装Git 11
创建GitHub 账号 11
配置SSH 密钥 11
创建代码库分支 12
启动Jenkins 13
配置工具 17
配置你的Maven 设置 18
配置JDK 19
通知 20
设置Git 20
你的第一个Jenkins 构建作业 21
你的第一个构建作业 26
更多的报告——显示Javadoc 33
添加代码覆盖率和其他度量 34
小结 40
第3 章 安装Jenkins 41
简介 41
下载和安装Jenkins 41
为Jenkins 准备好构建服务器 44
Jenkins 主目录 45
在Debian 或者Ubuntu 系统上安装Jenkins 47
在Red Hat、Fedora 或者CentOS 上安装Jenkins 48
在SUSE 或者OpenSUSE 上安装Jenkins 49
以单机应用形式运行Jenkins 49
基于Apache 服务器运行Jenkins 53
在应用服务器上运行Jenkins 54
内存方面的考虑 54
安装Jenkins 为一个Windows 服务 55
Jenkins 主目录里有什么 59
备份Jenkins 数据 62
升级Jenkins 安装 63
小结 64
第4 章 配置Jenkins 服务器 65
简介 65
配置面板——Manage Jenkins 界面 65
配置系统环境 68
配置全局属性 69
配置JDK 70
配置构建工具 72
Maven 73
Ant 74
Shell 脚本 75
配置版本控制工具 75
配置Subversion 75
配置CVS 75
配置邮件服务器 76
配置代理 77
小结 78
第5 章 设置构建作业 79
简介 79
Jenkins 构建作业 79
创建自由式构建作业 80
通用选项 81
高级项目选项 82
配置源代码管理 83
用Subversion 工作 84
使用Git 86
Build Triggers 96
构建作业完成后触发下一个 97
计划构建作业 97
轮询SCM 98
远程触发构建 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
用其他语言使用Jenkins 124
用Grails 构建项目 124
用Gradle 构建项目 126
用Visual Studio MSBuild 构建项目 129
用NAnt 构建项目 130
使用Ruby 和Ruby on Rails 构建项目 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
使用Atlassian Crowd 178
与其他系统集成 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
Checkstyle 227
PMD/CPD 230
FindBugs 235
CodeNarc 237
使用Violations 插件报告代码质量问题 238
与自由风格下的构建作业一起工作 239
使用Maven 构建作业 242
使用Checkstyle、PMD 和FindBugs 报告 244
报告代码复杂度 247
报告未完成的任务 248
集成Sonar 249
小结 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
Locks and Latches 插件 281
构建管道及优化 282
通过M2Release 插件管理Maven 版本发布 283
复制构建产物 286
构建进阶 289
汇总测试结果 295
构建管道 296
小结 299
第11 章 分布式构建 301
简介 301
Jenkins 分布式构建架构 301
Jenkins 主/ 从策略 302
主节点使用SSH 启动从节点代理 303
使用Java Web Start 手工启动从代理 307
把Jenkins 从节点安装为Windows 服务 309
无主节点模式启动从节点 310
以远程服务方式启动Windows 从节点 310
把构建作业与一个或一组从节点关联 311
节点监控 313
云计算 314
使用Amazon EC2 314
使用CloudBees DEV@cloud 服务 318
小结 319
第12 章 自动化部署和持续交付 321
简介 . 321
实现自动化和持续部署 322
部署脚本 322
数据库更新 322
冒烟测试 325
回滚更改 326
部署到应用程序服务器上 326
部署一个Java 应用 327
部署像Ruby 和PHP 这样基于脚本的应用程序 336
小结 339
第13 章 Jenkins 的维护341
简介 341
监控磁盘空间 341
使用Disk Usage 插件 343
磁盘使用及Jenkins Maven 项目类型 344
监控服务器负载 345
备份配置 346
Jenkins 备份基础 346
使用备份插件 348
更为轻量的自动备份 350
构建作业归档 350
构建迁移 351
小结 355
附录A 自动化你的单元和集成测试 357
索引 367

读者评论

电子书版本

  • Epub
  • Mobi

相关博文

  • 持续集成与Jenkins

    管理员账号 2016-11-10

    小编说:持续集成,就其最简单的形式来讲,就是一个能监控你版本控制系统变化的工具。无论任何时候,只要检测到有变化,这个工具就会自动编译和测试你的应用程序。如果出现问题,它就马上通知开发人员,以便他们可以立即着手解决这个问题。 本文选自...

    管理员账号 2016-11-10
    1685 0 0 0

相关图书

亿级流量系统架构设计与实战

李琛轩 (作者)

本书涵盖了亿级用户应用后台通用的技术和系统架构设计思路,在内容结构上分为三大篇:架构知识篇(第1~3章),作为全书的基础知识篇,首先介绍后台的关键组件构成以及机...

 

软件架构设计:大型网站技术架构与业务架构融合之道

余春龙 (作者)

本书系统化地阐述了技术架构与业务架构的方法论与实践。本书内容分为5大部分,第1部分从行业背景出发定义架构的概念与范畴;第2部分细致讨论架构所需的计算机功底,包括...

¥49.00

MySQL 8 Cookbook(中文版)

(美) 卡西克·阿皮加 特拉 (Karthik Appigatla) (作者) 周彦伟 孟治华 王学芳 (译者)

MySQL 8.0 的发布是MySQL 发展历史上的一个重要里程碑,也是开源数据库领域内的一个大事件。针对这个版本,MySQL 官方团队做了太多的工作,从查询优...

 

iOS和macOS性能优化:Cocoa、Cocoa Touch、Objective-C和Swift

[德] Marcel Weiher (作者) 李俊阳 马超 程伟 孙莹 译 (译者)

随着应用功能的日益增加,性能问题也逐渐浮出水面,进入我们的视野之中。本书作者Marcel Weiher在性能调优领域有着丰富的经验,在他的带领下,你将会了解如何...

¥99.00

Scala编程(第3版)

Martin Odersky;Lex Spoon;Bill Venners (作者) 高宇翔 (译者)

本书由直接参与Scala开发的一线人员编写,因而对原理的解读和应用的把握更加值得信赖。本书面向具有一定编程经验的开发者,目标是让读者能够全面了解和掌握Scala...

¥144.00

质量全面管控——从项目管理到容灾测试

葛长芝 (作者)

本书专门为有志于软件测试的工程师打开软件测试的大门,笔者结合案例讲解测试实践技术,主要内容有:项目管理、项目需求管理、代码质量控制、自动化部署、软件测试、安全测...

¥49.00