实战Gradle

实战Gradle

作者:马斯可

出版社:电子工业出版社

出版年:2015-09-01

评分:5分

ISBN:9787121269257

所属分类:网络科技

书刊介绍

实战Gradle 内容简介

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 本书特色

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 足矣。

实战Gradle 目录

第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 ant12
1.5.2 apache maven16
1.5.3 对下一代构建工具的需求19
1.6 总结20
2下一代构建工具:gradle 23
2.1 为什么要用gradle,为什么是现在24
2.1.1 java 构建工具的演变25
2.1.2 为什么应该选择gradle27
2.2 gradle 引人注目的特性集29
2.2.1 可表达性的构建语言和底层的api29
2.2.2 gradle 就是groovy31
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 安装gradle38
2.5 开始使用gradle40
2.6 使用gradle 的命令行42
2.6.1 列出项目中所有可用的task43
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 使用task82
4.2.1 项目版本管理82
4.2.2 声明task 动作83
4.2.3 访问defaulttask 属性84
4.2.4 定义task 依赖85
4.2.5 终结器task86
4.2.6 添加任意代码87
4.2.7 理解task 配置87
4.2.8 声明task 的inputs 和outputs90
4.2.9 编写和使用自定义task92
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
7gradle 测试 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 测试task163
7.2.4 自动化测试检测164
7.3 单元测试164
7.3.1 使用junit164
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 的api202
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 与gradle230
9.1.1 在gradle 中使用ant 脚本功能231
9.1.2 在gradle 中使用标准的ant 任务237
9.1.3 迁移策略239
9.2 maven 和gradle242
9.2.1 异同之处243
9.2.2 迁移策略246
9.3 比较构建249
9.4 总结251
第3 部分 从构建到部署 253
10ide 支持和工具 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 集成gradle283
10.4 总结

实战Gradle 相关资料

“一本权威指南。”
— 摘自hans dockter之序,gradle和gradleware的创建者
“自动化构建的新方式,你永远不会怀念旧的。”
— nacho ormeno, startupxplore
“多语言程序员必读!”
— rob bugh, reachforce
“**的gradle参考!充满了真实案例。”
— wellington r.pinheiro 巴西沃尔玛电商
“帮助所有开发者使用gradle所缺少的一本书。”
— samuel brown, blackboard, inc.

实战Gradle 作者简介

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

相关推荐

微信二维码