[201509][实战 Gradle][李建][杨柳][朱本威][译]

[201509][实战 Gradle][李建][杨柳][朱本威][译]

第 1 部分 Gradle 介绍

1 项目自动化介绍

1.1 没有项目自动化的生活

1.2 项目自动化的好处

1.2.1 防止手动介入
1.2.2 创建可重复的构建
1.2.3 让构建便携

1.3 项目自动化的类型

1.3.1 按需构建
1.3.2 触发构建
1.3.3 预定构建

1.4 构建工具

1.4.1 什么是构建工具
1.4.2 构建工具的剖析

1.5 Java 构建工具

1.5.1 Apache Ant
1.5.2 Apache Maven
1.5.3 对下一代构建工具的需求

1.6 总结

2 下一代构建工具:Gradle

2.1 为什么要用 Gradle,为什么是现在

2.1.1 Java 构建工具的演变
2.1.2 为什么应该选择 Gradle

2.2 Gradle 引人注目的特性集

2.2.1 可表达性的构建语言和底层的 API
2.2.2 Gradle 就是 Groovy
2.2.3 灵活的约定
2.2.4 鲁棒和强大的依赖管理
2.2.5 可扩展的构建
2.2.6 轻松的可扩展性
2.2.7 和其他构建工具集成
2.2.8 社区和公司的推动
2.2.9 锦上添花:额外的特性

2.3 更大的场景:持续交付

2.3.1 从构建到部署自动化项目

2.4 安装 Gradle

2.5 开始使用 Gradle

2.6 使用 Gradle 的命令行

2.6.1 列出项目中所有可用的 task
2.6.2 任务执行
2.6.3 命令行选项
2.6.4 Gradle 守护进程

2.7 总结

3 通过范例学习构建 Gradle 项目

3.1 介绍学习案例

3.1.1 To Do 应用程序
3.1.2 任务管理用例
3.1.3 检查组件交互
3.1.4 构建应用功能

3.2 构建 Java 项目

3.2.1 使用 Java 插件
3.2.2 定制你的项目
3.2.3 配置和使用外部依赖

3.3 用 Gradle 做 Web 开发

3.3.1 添加 Web 组件
3.3.2 使用 War 和 Jetty 插件

3.4 Gradle 包装器

3.4.1 配置包装器
3.4.2 使用包装器
3.4.3 定制包装器

3.5 总结

第 2 部分 掌握基本原理

4 构建脚本概要

4.1 构建块

4.1.1 项目
4.1.2 任务
4.1.3 属性

4.2 使用 task

4.2.1 项目版本管理
4.2.2 声明 task 动作
4.2.3 访问 DefaultTask 属性
4.2.4 定义 task 依赖
4.2.5 终结器 task
4.2.6 添加任意代码
4.2.7 理解 task 配置
4.2.8 声明 task 的 inputs 和 outputs
4.2.9 编写和使用自定义 task
4.2.10 Gradle 的内置 task 类型
4.2.11 task 规则
4.2.12 在 buildSrc 目录下构建代码

4.3 挂接到构建生命周期

4.3.1 挂接到 task 执行图
4.3.2 实现 task 执行图监听器
4.3.3 初始化构建环境

4.4 总结

5 依赖管理

5.1 依赖管理概述

5.1.1 不完善的依赖管理技术
5.1.2 自动化依赖管理的重要性
5.1.3 使用自动化依赖管理
5.1.4 自动化依赖管理的挑战

5.2 通过例子学习依赖管理

5.3 依赖配置

5.3.1 理解配置 API 表示
5.3.2 自定义配置
5.3.3 访问配置

5.4 声明依赖

5.4.1 理解依赖 API 表示
5.4.2 外部模块依赖
5.4.3 文件依赖

5.5 使用和配置仓库

5.5.1 理解仓库 API 表示
5.5.2 Maven 仓库
5.5.3 Ivy 仓库
5.5.4 扁平的目录仓库

5.6 理解本地依赖缓存

5.6.1 分析缓存结构
5.6.2 显著的缓存特性

5.7 解决依赖问题

5.7.1 应对版本冲突
5.7.2 强制指定一个版本
5.7.3 使用依赖观察报告
5.7.4 刷新缓存

5.8 总结

6 多项目构建

6.1 模块化项目

6.1.1 耦合与内聚
6.1.2 模块划分
6.1.3 模块化重构

6.2 组装多项目构建

6.2.1 settings 文件介绍
6.2.2 理解 settings API 表示
6.2.3 settings 执行
6.2.4 获取 settings 文件
6.2.5 分层布局与扁平布局

6.3 配置子项目

6.3.1 理解 Project API 表示
6.3.2 定义特定的行为
6.3.3 声明项目依赖
6.3.4 多项目部分构建
6.3.5 声明跨项目的 task 依赖
6.3.6 定义公共行为

6.4 独立的项目文件

6.4.1 为每个项目创建构建文件
6.4.2 定义根项目的构建代码
6.4.3 定义子项目的构建代码

6.5 自定义项目

6.6 总结

7 Gradle 测试

7.1 自动化测试

7.1.1 自动化测试类型
7.1.2 自动化测试金字塔

7.2 测试 Java 应用程序

7.2.1 项目布局
7.2.2 测试配置
7.2.3 测试 task
7.2.4 自动化测试检测

7.3 单元测试

7.3.1 使用 JUnit
7.3.2 使用其他的单元测试框架
7.3.3 结合使用多个单元测试框架

7.4 配置测试执行

7.4.1 命令行选项
7.4.2 理解测试 API 表示
7.4.3 控制运行时行为
7.4.4 控制测试日志
7.4.5 并行执行测试
7.4.6 响应测试生命周期事件
7.4.7 实现测试监听器

7.5 集成测试

7.5.1 引入用例研究
7.5.2 编写测试类
7.5.3 在构建中支持集成测试
7.5.4 为集成测试建立约定
7.5.5 引导测试环境

7.6 功能测试

7.6.1 引入用例研究
7.6.2 在构建中支持功能测试

7.7 总结

8 扩展 Gradle

8.1 通过案例学习介绍插件

8.1.1 在云中使用 Gradle 管理应用
8.1.2 设置云环境

8.2 从零起步构建插件

8.3 写一个脚本插件

8.3.1 添加 CloudBees 的 API 类库
8.3.2 在 task 中使用 CloudBees 的 API

8.4 编写定制的 task 类

8.4.1 定制 task 的实现选项
8.4.2 在 buildSrc 下定义定制任务

8.5 使用和构建对象插件

8.5.1 使用对象插件
8.5.2 解析对象插件
8.5.3 编写对象插件
8.5.4 插件扩展机制
8.5.5 给插件一个有意义的名字
8.5.6 测试对象插件
8.5.7 开发和使用独立的对象插件

8.6 总结

9 集成与迁移

9.1 Ant 与 Gradle

9.1.1 在 Gradle 中使用 Ant 脚本功能
9.1.2 在 Gradle 中使用标准的 Ant 任务
9.1.3 迁移策略

9.2 Maven 和 Gradle

9.2.1 异同之处
9.2.2 迁移策略

9.3 比较构建

9.4 总结

第 3 部分 从构建到部署

10 IDE 支持和工具

10.1 使用 IDE 插件生成项目文件

10.1.1 使用 Eclipse 插件
10.1.2 使用 IDEA 插件
10.1.3 使用 Sublime Text 插件

10.2 在流行的 IDE 中管理 Gradle 项目

10.2.1 SpringSource STS 对 Gradle 的支持
10.2.2 IntelliJ IDEA 对 Gradle 的支持
10.2.3 NetBeans 对 Gradle 的支持

10.3 使用工具 API 集成 Gradle

10.4 总结

11 构建多语言项目

11.1 使用 Gradle 管理 JavaScript

11.1.1 处理 JavaScript 的典型 task
11.1.2 在 To Do 应用程序中使用 JavaScript
11.1.3 对 JavaScript 库依赖管理
11.1.4 利用第三方 Ant task 合并和压缩 JavaScript
11.1.5 将 JavaScript 优化作为开发工作流的一部分
11.1.6 使用外部的 Java 库分析 JavaScript 代码
11.1.7 使用第三方 Gradle JavaScript 插件
11.1.8 在 Gradle 中使用 Grunt

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

11.2.1 JVM 语言插件的基本功能
11.2.2 构建 Groovy 项目
11.2.3 构建 Scala 项目

11.3 其他语言

11.4 总结

12 代码质量管理和监测

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

12.2 衡量代码覆盖率

12.2.1 探索代码覆盖率工具
12.2.2 使用 JaCoCo 插件
12.2.3 使用 Cobertura 插件

12.3 执行静态代码分析

12.3.1 探讨静态代码分析工具
12.3.2 使用 Checkstyle 插件
12.3.3 使用 PMD 插件
12.3.4 使用 FindBugs 插件
12.3.5 使用 JDepend 插件

12.4 集成 Sonar

12.4.1 安装并运行 Sonar
12.4.2 使用 Sonar Runner 分析项目
12.4.3 将代码覆盖率报告发布到 Sonar

12.5 总结

13 持续集成

13.1 持续集成的好处

13.2 安装 Git

13.2.1 创建 GitHub 账号
13.2.2 forking GitHub 仓库
13.2.3 安装和配置 Git

13.3 使用 Jenkins 构建项目

13.3.1 开始使用 Jenkins
13.3.2 安装 Git 和 Gradle 插件
13.3.3 定义 build job
13.3.4 执行 build job
13.3.5 添加测试报告

13.4 探索基于云的解决方案

13.5 使用 Jenkins 创建构建管道

13.5.1 创建构建管道的挑战
13.5.2 探索基本的 Jenkins 插件
13.5.3 配置构建管道

13.6 总结

14 打包和发布

14.1 打包和分发

14.1.1 定义附加包
14.1.2 创建分发包

14.2 发布

14.2.1 发布到 Maven 仓库中
14.2.2 老的和新的发布机制
14.2.3 声明软件组件为 Maven 发布包
14.2.4 发布软件组件到本地 Maven 缓存中
14.2.5 声明自定义的发布包
14.2.6 修改所生成的 POM 文件
14.2.7 发布到本地 Maven 仓库中
14.2.8 发布到远程的 Maven 仓库中

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

14.3.1 发布到 JFrog Bintray 中
14.3.2 发布到 Maven Central

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

14.4.1 构建一次
14.4.2 发布一次并重用
14.4.3 选择一个合适的版本管理方案
14.4.4 在可部署包中加入构建信息
14.4.5 发布 To Do 应用程序 WAR 文件
14.4.6 扩展构建管道

14.5 总结

15 基础环境准备和部署

15.1 准备基础环境

15.1.1 基础设施即代码
15.1.2 使用 Vagrant 和 Puppet 创建虚拟机
15.1.3 从 Gradle 执行 Vagrant 命令

15.2 针对部署环境

15.2.1 在 Groovy 脚本中定义配置
15.2.2 使用 Groovy 的 ConfigSlurper 读取配置
15.2.3 在构建中使用配置

15.3 自动部署

15.3.1 从二进制仓库中获取包
15.3.2 确定必需的部署步骤
15.3.3 通过 SSH 命令部署

15.4 部署测试

15.4.1 使用冒烟测试验证部署成功
15.4.2 使用验收测试验证应用程序功能

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

15.5.1 自动部署到测试环境
15.5.2 部署测试
15.5.3 按需部署到 UAT 和 产品环境

15.6 总结

A 驾驭命令行

A.1 探索类 task

A.2 构建设置 task

A.3 配置输入

A.3.1 常用选项
A.3.2 属性选项
A.3.3 日志选项
A.3.4 缓存选项
A.3.5 后台守护进程选项

B Gradle 用户所需要了解的 Groovy

B.1 什么是 Groovy

B.2 我需要知道多少 Groovy 知识

B.3 比较 Java 和 Groovy 语法

B.4 高效的 Groovy 特性

B.4.1 assert 语句
B.4.2 可选类型定义
B.4.3 可选的括号
B.4.4 字符串
B.4.5 Groovy 字符串(GString)
B.4.6 集合 API
B.4.7 命名参数
B.4.8 闭包
B.4.9 Groovy 开发工具库

B.5 在 Gradle 构建脚本中使用 Groovy

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值