《实战Gradle》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:(美)马斯可著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2015
  • ISBN:9787121269257
  • 页数:463 页
图书介绍:《实战Gradle》(Gradle in Action)一书全方位地讲解了Gradle工具相关的知识,包括Gradle的基本知识,自动化构建的基本概念和最佳实践,以实际案例的方式解释如何使用Gradle进行软件项目构建。除了基础知识外,由于软件开发绝对不仅仅是实现业务逻辑代码,书中还介绍了一些解决软件开发中常见问题的实践,如多语言、多项目构建,Gradle在持续集成和持续交付中的应用,Gradle构建JVM其他语言,以及Gradle集JavaScript构建等。

第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 初始化构建环境 105

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 测试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

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集成Gradle 283

10.4 总结 287

11构建多语言项目 289

11.1 使用Gradle管理JavaScript 290

11.1.1 处理JavaScript的典型task 290

11.1.2 在To Do应用程序中使用JavaScript 291

11.1.3 对JavaScript库依赖管理 292

11.1.4 利用第三方Ant task合并和压缩JavaScript 294

11.1.5 将JavaScript优化作为开发工作流的一部分 296

11.1.6 使用外部的Java库分析JavaScript代码 297

11.1.7 使用第三方Gradle JavaScript插件 299

11.1.8 在Gradle中使用Grunt 300

11.2 构建基于JVM的多语言项目 303

11.2.1 JVM语言插件的基本功能 303

11.2.2 构建Groovy项目 305

11.2.3 构建Scala项目 310

11.3 其他语言 314

11.4 总结 315

12代码质量管理和监测 317

12.1 将代码分析集成到构建中 318

12.2 衡量代码覆盖率 319

12.2.1 探索代码覆盖率工具 320

12.2.2 使用JaCoCo插件 322

12.2.3 使用Cobertura插件 324

12.3 执行静态代码分析 326

12.3.1 探讨静态代码分析工具 327

12.3.2 使用Checkstyle插件 329

12.3.3 使用PMD插件 331

12.3.4 使用FindBugs插件 333

12.3.5 使用JDepend插件 334

12.4 集成Sonar 335

12.4.1 安装并运行Sonar 337

12.4.2 使用Sonnar Runner分析项目 338

12.4.3 将代码覆盖率报告发布到Sonar 340

12.5 总结 343

13持续集成 345

13.1 持续集成的好处 346

13.2 安装Git 348

13.2.1 创建GitHub账号 348

13.2.2 forking GitHub仓库 349

13.2.3 安装和配置Git 349

13.3 使用Jenkins构建项目 350

13.3.1 开始使用Jenkins 350

13.3.2 安装Git和Gradle插件 350

13.3.3 定义build job 352

13.3.4 执行build job 354

13.3.5 添加测试报告 356

13.4 探索基于云的解决方案 359

13.5 使用Jenkins创建构建管道 360

13.5.1 创建构建管道的挑战 360

13.5.2 探索基本的Jenkins插件 361

13.5.3 配置构建管道 364

13.6 总结 366

14打包和发布 367

14.1 打包和分发 368

14.1.1 定义附加包 369

14.1.2 创建分发包 371

14.2 发布 374

14.2.1 发布到Maven仓库中 375

14.2.2 老的和新的发布机制 376

14.2.3 声明软件组件为Maven发布包 376

14.2.4 发布软件组件到本地Maven缓存中 377

14.2.5 声明自定义的发布包 379

14.2.6 修改所生成的POM文件 381

14.2.7 发布到本地Maven仓库中 383

14.2.8 发布到远程的Maven仓库中 385

14.3 发布到公共的二进制仓库 388

14.3.1 发布到JFrog Bintray中 388

14.3.2 发布到Maven Central 392

14.4 打包和发布作为构建管道的一部分 393

14.4.1 构建一次 393

14.4.2 发布一次并重用 394

14.4.3 选择一个合适的版本管理方案 395

14.4.4 在可部署包中加入构建信息 398

14.4.5 发布To Do应用程序WAR文件 399

14.4.6 扩展构建管道 400

14.5 总结 401

15基础环境准备和部署 403

15.1 准备基础环境 404

15.1.1 基础设施即代码 404

15.1.2 使用Vagrant和Puppet创建虚拟机 405

15.1.3 从Gradle执行Vagrant命令 407

15.2 针对部署环境 409

15.2.1 在Groovy脚本中定义配置 409

15.2.2 使用Groovy的ConfigSlurper读取配置 411

15.2.3 在构建中使用配置 412

15.3 自动部署 413

15.3.1 从二进制仓库中获取包 413

15.3.2 确定必需的部署步骤 415

15.3.3 通过SSH命令部署 415

15.4 部署测试 420

15.4.1 使用冒烟测试验证部署成功 420

15.4.2 使用验收测试验证应用程序功能 423

15.5 将部署集成到构建管道中 424

15.5.1 自动部署到测试环境 425

15.5.2 部署测试 425

15.5.3 按需部署到UAT和产品环境 426

15.6 总结 427

A 驾驭命令行 429

B Gradle用户所需要了解的Groovy 435

索引 447