欢迎光临
免费的PDF电子书下载网站

实战Gradle PDF下载

编辑推荐

Gradle是一个通用的自动化构建工具。其继承了先驱者Ant和Maven所建立的使用模式,并且允许构建具有表达性、可维护性和容易理解。使用灵活的基于Groovy的DSL,Gradle提供了声明式的可扩展语言元素,让你能够随心所欲地建模项目需求。《实战Gradle》是关于使用Gradle实现端到端的项目自动化的综合指南。从基础知识开始介绍,具有实践性,易于阅读,讨论了在实际项目中如何建立高效的完整的构建过程。在这个过程中,涵盖了一些高级话题,如测试、持续集成和代码质量监测。你还会体验到像设置目标环境和部署软件这样的具体任务。本书内容包括:

关于Gradle的综合指南;

真实的实践案例;

从Ant和Maven过渡;

深入讲解插件开发;

使用Gradle实现持续交付。

本书假设读者具有Java基础背景,但是不要求具备Groovy知识。

Benjamin Muschko是Gradleware工程师团队的成员,同时也是很多流行的Gradle插件的作者。

如需下载免费的PDF、ePub和Kindle形式的电子书,本书的拥有者可以访问manning.com/GradleinAction。 ;

内容简介

Gradle 是Java 软件开发中的自动化构建工具,类似于传统工具如Ant 和Maven。Gradle 吸收或用了Maven 中比较成功的一些实践,但相对于Maven 或Ant 又有极强的扩展。

《实战Gradle》(Gradle in Action)全方位地讲解了Gradle 工具相关的知识,包括Gradle 的基本识、自动化构建的基本概念和**实践,以实际案例的方式解释如何使用Gradle 进行软件项目构建。

除了基础知识外,由于软件开发**不仅仅是实现业务逻辑代码,书中还介绍了一些解决软件开中常见问题的实践,如多语言、多项目构建,Gradle 在持续集成和持续交付中的应用,Gradle 构建JVM 其他语言,以及Gradle 集成JavaScript 构建等。

云计算和DevOps 的兴起,给软件行业带来了翻天覆地的变化,书中对于云计算平台、开源社区的一些工具与Gradle 的结合使用也做了相关的介绍。

因为Groovy 用于编写Gradle 构建配置的DSL,所以为了帮助读者更好地理解Gradle,本书还讲了Groovy 的基本知识,虽然不是全方位地讲解Groovy,但是理解Gradle 足矣。

作者简介

Benjamin Muschko 是一名拥有超过 10 年开发和交付商业软件工作经验的软件开发工程师。他是 Gradleware 工程团队的成员,也是多个 Gradle 流行插件的作者。

实战Gradle PDF下载

目录

第1 部分 Gradle 介绍 1
1 项目自动化介绍 3
1.1 没有项目自动化的生活 4
1.2 项目自动化的好处 5
1.2.1 防止手动介入 5
1.2.2 创建可重复的构建 5
1.2.3 让构建便携 5
1.3 项目自动化的类型 6
1.3.1 按需构建 6
1.3.2 触发构建 7
1.3.3 预定构建 7
1.4 构建工具 8
1.4.1 什么是构建工具 9
1.4.2 构建工具的剖析 10
1.5 Java 构建工具 12
1.5.1 Apache Ant 12
1.5.2 Apache Maven 16
1.5.3 对下一代构建工具的需求 19
1.6 总结 20
2 下一代构建工具:Gradle 23
2.1 为什么要用Gradle,为什么是现在 24
2.1.1 Java 构建工具的演变 25
2.1.2 为什么应该选择Gradle 27
2.2 Gradle 引人注目的特性集 29
2.2.1 可表达性的构建语言和底层的API 29
2.2.2 Gradle 就是Groovy 31
2.2.3 灵活的约定 32
2.2.4 鲁棒和强大的依赖管理 33
2.2.5 可扩展的构建 34
2.2.6 轻松的可扩展性 34
2.2.7 和其他构建工具集成 35
2.2.8 社区和公司的推动 36
2.2.9 锦上添花:额外的特性 36
2.3 更大的场景:持续交付 36
2.3.1 从构建到部署自动化项目 37
2.4 安装Gradle 38
2.5 开始使用Gradle 40
2.6 使用Gradle 的命令行 42
2.6.1 列出项目中所有可用的task 43
2.6.2 任务执行 44
2.6.3 命令行选项 46
2.6.4 Gradle 守护进程 47
2.7 总结 48
3 通过范例学习构建Gradle 项目 49
3.1 介绍学习案例 50
3.1.1 To Do 应用程序 50
3.1.2 任务管理用例 50
3.1.3 检查组件交互 51
3.1.4 构建应用功能 52
3.2 构建Java 项目 55
3.2.1 使用Java 插件 55
3.2.2 定制你的项目 59
3.2.3 配置和使用外部依赖 60
3.3 用Gradle 做Web 开发 62
3.3.1 添加Web 组件 62
3.3.2 使用War 和Jetty 插件 64
3.4 Gradle 包装器 69
3.4.1 配置包装器 70
3.4.2 使用包装器 71
3.4.3 定制包装器 73
3.5 总结 73
第2 部分 掌握基本原理 75
4 构建脚本概要 77
4.1 构建块 78
4.1.1 项目 78
4.1.2 任务 80
4.1.3 属性 80
4.2 使用task 82
4.2.1 项目版本管理 82
4.2.2 声明task 动作 83
4.2.3 访问DefaultTask 属性 84
4.2.4 定义task 依赖 85
4.2.5 终结器task 86
4.2.6 添加任意代码 87
4.2.7 理解task 配置 87
4.2.8 声明task 的inputs 和outputs 90
4.2.9 编写和使用自定义task 92
4.2.10 Gradle 的内置task 类型 95
4.2.11 task 规则 97
4.2.12 在buildSrc 目录下构建代码 100
4.3 挂接到构建生命周期 101
4.3.1 挂接到task 执行图 103
4.3.2 实现task 执行图监听器 103
4.3.3 初始化构建环境 4.4 总结 106
5 依赖管理 107
5.1 依赖管理概述 108
5.1.1 不完善的依赖管理技术 108
5.1.2 自动化依赖管理的重要性 108
5.1.3 使用自动化依赖管理 110
5.1.4 自动化依赖管理的挑战 110
5.2 通过例子学习依赖管理 112
5.3 依赖配置 113
5.3.1 理解配置API 表示 113
5.3.2 自定义配置 114
5.3.3 访问配置 115
5.4 声明依赖 115
5.4.1 理解依赖API 表示 116
5.4.2 外部模块依赖 117
5.4.3 文件依赖 121
5.5 使用和配置仓库 122
5.5.1 理解仓库API 表示 123
5.5.2 Maven 仓库 124
5.5.3 Ivy 仓库 126
5.5.4 扁平的目录仓库 126
5.6 理解本地依赖缓存 127
5.6.1 分析缓存结构 127
5.6.2 显著的缓存特性 129
5.7 解决依赖问题 130
5.7.1 应对版本冲突 130
5.7.2 强制指定一个版本 131
5.7.3 使用依赖观察报告 131
5.7.4 刷新缓存 132
5.8 总结 133
6 多项目构建 135
6.1 模块化项目 136
6.1.1 耦合与内聚 136
6.1.2 模块划分 137
6.1.3 模块化重构 138
6.2 组装多项目构建 139
6.2.1 settings 文件介绍 140
6.2.2 理解settings API 表示 141
6.2.3 settings 执行 142
6.2.4 获取settings 文件 142
6.2.5 分层布局与扁平布局 143
6.3 配置子项目 144
6.3.1 理解Project API 表示 145
6.3.2 定义特定的行为 146
6.3.3 声明项目依赖 147
6.3.4 多项目部分构建 149
6.3.5 声明跨项目的task 依赖 151
6.3.6 定义公共行为 153
6.4 独立的项目文件 154
6.4.1 为每个项目创建构建文件 155
6.4.2 定义根项目的构建代码 155
6.4.3 定义子项目的构建代码 155
6.5 自定义项目 156
6.6 总结 157
7 Gradle 测试 159
7.1 自动化测试 160
7.1.1 自动化测试类型 160
7.1.2 自动化测试金字塔 160
7.2 测试Java 应用程序 161
7.2.1 项目布局 162
7.2.2 测试配置 162
7.2.3 测试task 163
7.2.4 自动化测试检测 164
7.3 单元测试 164
7.3.1 使用JUnit 164
7.3.2 使用其他的单元测试框架 168
7.3.3 结合使用多个单元测试框架 170
7.4 配置测试执行 172
7.4.1 命令行选项 173
7.4.2 理解测试API 表示 174
7.4.3 控制运行时行为 175
7.4.4 控制测试日志 176
7.4.5 并行执行测试 178
7.4.6 响应测试生命周期事件 179
7.4.7 实现测试监听器 180
7.5 集成测试 181
7.5.1 引入用例研究 181
7.5.2 编写测试类 181
7.5.3 在构建中支持集成测试 182
7.5.4 为集成测试建立约定 184
7.5.5 引导测试环境 186
7.6 功能测试 187
7.6.1 引入用例研究 187
7.6.2 在构建中支持功能测试 188
7.7 总结 192
8 扩展Gradle 195
8.1 通过案例学习介绍插件 196
8.1.1 在云中使用Grade 管理应用 196
8.1.2 设置云环境 197
8.2 从零起步构建插件 200
8.3 写一个脚本插件 201
8.3.1 添加CloudBees 的API 类库 201
8.3.2 在task 中使用CloudBees 的API 202
8.4 编写定制的task 类 206
8.4.1 定制task 的实现选项 206
8.4.2 在buildSrc 下定义定制任务 207
8.5 使用和构建对象插件 214
8.5.1 使用对象插件 215
8.5.2 解析对象插件 217
8.5.3 编写对象插件 218
8.5.4 插件扩展机制 219
8.5.5 给插件一个有意义的名字 222
8.5.6 测试对象插件 222
8.5.7 开发和使用独立的对象插件 224
8.6 总结 226
9 集成与迁移 229
9.1 Ant 与Gradle 230
9.1.1 在Gradle 中使用Ant 脚本功能 231
9.1.2 在Gradle 中使用标准的Ant 任务 237
9.1.3 迁移策略 239
9.2 Maven 和Gradle 242
9.2.1 异同之处 243
9.2.2 迁移策略 246
9.3 比较构建 249
9.4 总结 251
第3 部分 从构建到部署 253
10 IDE 支持和工具 255
10.1 使用IDE 插件生成项目文件 256
10.1.1 使用Eclipse 插件 257
10.1.2 使用IDEA 插件 265
10.1.3 使用Sublime Text 插件 270
10.2 在流行的IDE 中管理Gradle 项目 273
10.2.1 SpringSource STS 对Gradle 的支持 274
10.2.2 IntelliJ IDEA 对Gradle 的支持 278
10.2.3 NetBeans 对Gradle 的支持 280
10.3 使用工具API 集成Gradle 283
10.4 总结

媒体评论

“一本权威指南。”
— 摘自Hans Dockter之序,Gradle和Gradleware的创建者

“自动化构建的新方式,你永远不会怀念旧的。”
— Nacho Ormeno, startupXplore

“多语言程序员必读!”
— Rob Bugh, ReachForce

“**的Gradle参考!充满了真实案例。”
— Wellington R.Pinheiro 巴西沃尔玛电商

“帮助所有开发者使用Gradle所缺少的一本书。”
— Samuel Brown, Blackboard, Inc.

前沿


当你在创建一套类似于Gradle 这样的新技术时,开发过程中*关键的部分往往不是写代码。一旦项目的初期版本被数以千计的开发者使用,一个社区开始围绕该项目组建,挑战就变成了与更多关注者进行交流。他们会使用你的项目,会对项目的优缺点进行评价,而社区的大小也会成十倍或千倍的增长。Gradle 已经拥有了一大批关注者,而且在过去的两年里,我们已经看到人数有巨大的增长,而我们也准备迎接更多的用户。
因此,一点也不夸张地说,拥有一本好书是多么的重要。掌握多种技术和能力的开发者都希望有一本通俗易懂的书,它能够讲解语法和工具背后的哲理。因为只有这样,开发者才有信心通过这本**的Gradle 权威参考书让社区成长。《实战Gradle》就是这样一本书。不仅如此,这本书还让Gradle 的新用户有机会去了解,Gradle 是如何适应到持续交付这样更广阔的领域中的。
本书的作者Benjamin,是你希望能够从开源社区中闪现出来的一类专家。他是Gradle 的长期贡献者,也是多个Gradle 流行插件的作者。他拥有传播者和开发者两种角色。Benjamin 拥有一种很少见的能力,能够深入到一个特定开发挑战的核心细节中,我们并向用户解释这些细节。他在*近加入了Gradleware,并成为Gradle 开发团队的一员,我们感到非常的高兴。
我真心希望你能够喜欢这本书,也享受在工作中使用Gradle。祝你的软件交付过程变得有趣而且有效。
Hans Dockter,
Gradle and Gradleware 创始人

前言
当我以软件开发开始我的职业生涯时,我完全没有意识到对项目自动化的需求。我选择IDE 作为开发工具,它可以让我运行所有需要的任务,并完成自动化软件开发环节。2003 年,Rainer Sawitzki1,我所在项目的一个外部咨询师,他向我介绍了Ant。我觉得它简直太神奇了,Ant 能够通过已有的功能帮助我描述大部分自动化逻辑,并按照预定义的顺序执行。尽管定义语言是XML(曾经有那么一段时间XML还是很流行的),通过给不同的目标平台构建产品,给Web 容器编写部署逻辑和配置持续集成服务器,我的野心开始变得越来越大。
从那时起,自动化的需求发生了巨大的变化。项目变得越来越大,也越来越复杂。部署和交付模式已经远比之前麻烦。这些年为了满足自动化需求,我探索了许多其他类型的构建工具,但我总是会发现有不合逻辑的地方。许多开发者接受和维持这种现状,因此给他们留下了一些痛苦的经历。很少有话题去真正地讨论这个问题2,而不仅仅是赞成或者反对构建工具,以及为什么如此地不喜欢构建工具。本书的目的并不是要说服你从当前的构建工具切换到Gradle。如果你很满意你的配置方式(不管你用的什么),无论怎样,要坚持住。而我会更多地谈论Gradle 带来的巨大创新,以及与现有解决方案的对比。我诚心地请求你做出自己的判断。
在我的头脑里,我带着一种特殊的目的开始写这本书:教给你Gradle 的核心概念,但不止于此。在一个拥抱持续集成和持续交付实践的软件开发世界,你必须考虑一个问题,那就是将构建系统集成到工具的生态系统中。但愿,我在这本书里找到了平衡点。如果你有任何问题、评论或者想法,我都非常愿意去倾听。你的反馈也许会促使我去写第二版书或者附加新的内容。请随时向我发送电子邮件或者在Manning 的论坛上和我联系。
就和所有的书一样,纸张的数量是有限的。为了控制本书的讨论范围,我不得不去掉一部分我原本打算写进去的内容(这是我的**本书,带着初为作者的天真,我以为我可以将所有的内容都写进去)。关于本书的源代码,你可以在https://github.com/bmuschko/gradle-in-action-source 中找到,里面扩展了书中的一些内容,也列出了其他代码样例和资料的参考文献。我希望你可以和我享受写这本书一样,享受阅读这本书。

免费在线读



当你在创建一套类似于Gradle 这样的新技术时,开发过程中*关键的部分往往不是写代码。一旦项目的初期版本被数以千计的开发者使用,一个社区开始围绕该项目组建,挑战就变成了与更多关注者进行交流。他们会使用你的项目,会对项目的优缺点进行评价,而社区的大小也会成十倍或千倍的增长。Gradle 已经拥有了一大批关注者,而且在过去的两年里,我们已经看到人数有巨大的增长,而我们也准备迎接更多的用户。

因此,一点也不夸张地说,拥有一本好书是多么的重要。掌握多种技术和能力的开发者都希望有一本通俗易懂的书,它能够讲解语法和工具背后的哲理。因为只有这样,开发者才有信心通过这本**的Gradle 权威参考书让社区成长。《实战Gradle》就是这样一本书。不仅如此,这本书还让Gradle 的新用户有机会去了解,Gradle 是如何适应到持续交付这样更广阔的领域中的。

本书的作者Benjamin,是你希望能够从开源社区中闪现出来的一类专家。他是Gradle 的长期贡献者,也是多个Gradle 流行插件的作者。他拥有传播者和开发者两种角色。Benjamin 拥有一种很少见的能力,能够深入到一个特定开发挑战的核心细节中,我们并向用户解释这些细节。他在*近加入了Gradleware,并成为Gradle 开发团队的一员,我们感到非常的高兴。

我真心希望你能够喜欢这本书,也享受在工作中使用Gradle。祝你的软件交付过程变得有趣而且有效。

Hans Dockter,

Gradle and Gradleware 创始人

实战Gradle pdf下载声明

本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版

pdf下载地址

版权归出版社和作者所有,下载链接已删除。如果喜欢,请购买正版!

链接地址:实战Gradle