主题
Gradle 从 0 到 1 学习手册
谁适合看这套笔记?
- 完全没接触过 Gradle、想快速上手的小白
- 一直被
build.gradle报错折磨、不知道每行什么意思的"复制粘贴工程师"- 写过 Maven / Ant,想转 Gradle 的 Java/Kotlin 后端开发者
- Android 开发者,想真正搞懂"为什么我点一下编译要等 30 秒"
- 准备 Java / Kotlin / Android 岗位面试,想系统补齐构建工具知识盲区的同学
这是一份「生活化讲解 + 可运行代码 + 可视化演示 + 真实面试题」四位一体的 Gradle 学习笔记。每一章都假设你是完全没基础的小白,从「为什么要造 Gradle」开始讲,直到能自己写出工程化的多模块构建脚本。
🎯 为什么要学 Gradle
| 问题 | 一句话回答 |
|---|---|
| Gradle 是什么? | 基于 Groovy/Kotlin DSL 的现代构建工具,Android、Spring Boot、Kotlin 项目的事实标准。 |
| 跟 Maven 啥关系? | Maven 用 XML 声明,Gradle 用 代码 DSL —— 灵活度高一个量级;同时兼容 Maven 的依赖仓库。 |
| 学完能干啥? | 看懂任何 build.gradle.kts、写自定义 Task / 插件、做多模块项目、把构建从 30s 压到 5s。 |
| 学习曲线陡吗? | 基础 1 天能跑起来;理解生命周期、配置阶段 vs 执行阶段、Task 配置原理需要慢慢嚼。 |
| 为啥要从 Groovy 学到 Kotlin DSL? | 老项目还都是 Groovy,新项目都在转 Kotlin DSL,两边都得会看。 |
| 工资 / 面试有没有用? | 中高级 Android / Kotlin / Java 后端面试必问:"你能讲讲 Gradle 的构建生命周期吗?"答不出来直接掉档。 |
📚 章节地图
| 章节 | 主题 | 核心知识点 | 难度 |
|---|---|---|---|
| 第 0 章 学习路线 | 入门到进阶的整体规划 | 学习节奏 / 推荐资料 / 常见误区 | ⭐ |
| 第 1 章 Gradle 是什么 | 历史、定位、与 Maven/Ant 对比 | DSL / 增量构建 / 依赖管理三大卖点 | ⭐ |
| 第 2 章 环境搭建 & Wrapper | JDK / Gradle / Wrapper / 第一个项目 | wrapper / gradlew / IDE 集成 | ⭐ |
| 第 3 章 核心概念 | Project / Task / Plugin / 生命周期 | 配置阶段 vs 执行阶段 / Task 图 | ⭐⭐⭐ |
| 第 4 章 构建脚本 DSL | Groovy DSL vs Kotlin DSL 全对照 | settings / build / properties | ⭐⭐ |
| 第 5 章 Task 全攻略 | Task 类型、依赖、增量构建 | doFirst/doLast / inputs/outputs | ⭐⭐⭐ |
| 第 6 章 依赖管理 | 仓库 / 配置 / 版本冲突 | implementation/api/runtimeOnly | ⭐⭐⭐ |
| 第 7 章 Plugin 插件体系 | 核心 / 社区 / 自定义插件 | applyPlugin / Plugin DSL / 自定义插件 | ⭐⭐⭐ |
| 第 8 章 多项目构建 | 子项目 / Composite Build / Convention | settings.gradle / 项目层级 | ⭐⭐⭐⭐ |
| 第 9 章 性能优化 | 缓存 / 并行 / Daemon / 配置缓存 | 把 60s 压到 5s 的全部技巧 | ⭐⭐⭐⭐ |
| 第 10 章 实战项目 | 多模块 Spring Boot + 模块化 Android 风格 | 把所有知识串起来做工程 | ⭐⭐⭐⭐ |
🧭 推荐学习节奏
Day 1 - 2 : 第 1-2 章 建立体感,跑通 ./gradlew build
Day 3 - 5 : 第 3-4 章 理解生命周期,看懂任意 build.gradle.kts
Day 6 - 8 : 第 5-6 章 能写自定义 Task,搞清依赖配置
Day 9 - 11 : 第 7-8 章 会写插件 / 多模块工程
Day 12 - 14: 第 9-10 章 把构建优化到极致 + 上手实战项目💡 建议:每章先看文档,再打开浏览器看 demo 演示(
demo.html双击即开),最后把code/目录下的脚本亲手敲一遍并./gradlew xxx跑通。Gradle 是"动手才能学会"的工具,光读不练等于没学。
🛠 配套资源
- 每章可视化 demo:浏览器即开即用,无需配置;动画演示生命周期、Task 图、依赖图、缓存命中等抽象概念
- 示例代码:
code/目录下完整可跑的 mini-project,可直接./gradlew run/./gradlew test - 面试题:每章末尾 8-10 道高频面试题,附详细解析
🆚 跟其他构建工具的速览对比
| 维度 | Make | Ant | Maven | Gradle |
|---|---|---|---|---|
| 描述方式 | Makefile(规则) | XML(任务) | XML(声明) | Groovy / Kotlin DSL(代码) |
| 依赖管理 | ❌ | 弱(Ivy) | ✅ 强 | ✅ 强(兼容 Maven 仓库) |
| 增量构建 | 文件时间戳 | ❌ | ❌ | ✅ input/output 指纹 |
| 构建缓存 | ❌ | ❌ | ❌ | ✅ 本地 + 远程缓存 |
| 并行构建 | -j | ❌ | 弱 | ✅ 任务级并行 |
| 上手难度 | ⭐⭐ | ⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐(前期陡) |
| 灵活度 | ⭐⭐ | ⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐⭐ |
| Android 支持 | ❌ | ❌ | 弱 | ✅ Google 钦定 |
| Kotlin 友好 | ❌ | ❌ | 弱 | ✅ 原生 Kotlin DSL |
一句话总结:Maven 让你"声明你要什么",Gradle 让你"写代码描述如何构建" —— 灵活但有学习成本。
📖 延伸阅读
- 官方文档:https://docs.gradle.org/current/userguide/userguide.html
- 官方 Samples(按场景分类的示例工程):https://docs.gradle.org/current/samples/index.html
- 《Gradle 实战》—— 中文经典书,主要讲 Groovy DSL
- Kotlin DSL Primer:https://docs.gradle.org/current/userguide/kotlin_dsl.html
- DPE(Develocity)官方博客:https://gradle.com/blog/ —— 性能优化干货
- Gradle Plugin Portal:https://plugins.gradle.org/ —— 插件市场