Gradle 简介与安装配置

说实话,我刚接触 Gradle 那会儿,心里挺抵触的。那时候团队还在用 Maven,XML 写堆得老高的依赖配置,每次改版本号都得翻半天。但用过一次 Gradle 之后,我整个人都回不去了。为什么?因为它把「约定优于配置」做到了极致,而且脚本写起来就跟写代码一样自然。

这一章,我们就从零开始,把 Gradle 是什么、怎么装、装完怎么配,一次性说清楚。我不会扔一堆理论,而是按照我自己踩过的坑来组织内容。

Gradle 是什么?为什么需要它?

Gradle 是一个开源的自动化构建工具。说白了,它就是帮你把源代码变成可运行程序的那套流水线。跟 Maven、Ant 相比,Gradle 最大的特点是用 Groovy 或 Kotlin 写构建脚本,而不是 XML。

核心能力:

  • 依赖管理:自动下载第三方库,解决版本冲突
  • 任务编排:定义编译、测试、打包、部署等任务,并控制执行顺序
  • 构建缓存:增量构建,只重编变动的部分,速度提升明显
  • 多项目支持:一个配置可以管理几十个模块

我个人的经验是,Gradle 对 Java / Android 项目尤其友好。你想想看,一个大型 Android 项目,子模块几十个,如果用 Maven 写 parent POM,嵌套层级能把人绕晕。而 Gradle 用 settings.gradle 一句话搞定项目包含,清爽多了。

安装前的准备——JDK 版本兼容性

Gradle 本身是用 Java 写的,所以你的机器上必须先装好 JDK。不过这里有个坑——Gradle 不同版本对 JDK 版本的要求不一样。我之前有个项目,本地装的 JDK 17,但用的 Gradle 是 6.x,结果构建时报了一堆奇奇怪怪的错。后来查文档才发现 Gradle 6.x 最高只支持 JDK 15。

下面这个表是我从官方文档总结的,建议你直接存下来:

Gradle 版本 最低 JDK 版本 最高 JDK 版本(推荐) 额外说明
8.x(最新) JDK 17 JDK 21 需要 JDK 17 以上,支持 Java 21 新特性
7.x JDK 8 JDK 18 兼容性较好,很多老项目在用
6.x JDK 8 JDK 15 JDK 16+ 会报错,别问我怎么知道的
5.x JDK 8 JDK 14 太老了,除非维护遗留项目,否则不建议用

⚠️ 我曾经踩的坑: 我直接在 JDK 21 上尝试 Gradle 6.9,结果运行 gradle --version 直接抛出 UnsupportedClassVersionError。遇到这种问题别慌,先检查 Gradle 版本文档里的兼容性表格,或者直接升级 Gradle 到 8.x。

顺便说一句,你可以在终端里用 java -version 查看当前 JDK 版本。如果版本过低,先去 Oracle 或 AdoptOpenJDK 下载最新的 LTS 版本(目前推荐 JDK 17 或 JDK 21)。

一步步安装 Gradle

安装 Gradle 有两种主流方式:手动安装 和 通过 SDKMAN 管理。我两种都用过,下面分别讲。

方式一:手动安装(推荐初学者)

  1. 下载安装包:到 https://gradle.org/releases/ 下载 binary-only 或 complete 版本。我个人习惯下载 complete(带文档和源码),不过只跑构建的话 binary-only 就够了。
  2. 解压到目标目录:比如解压到 C:\tools\gradle-8.5(Windows)或 /opt/gradle-8.5(Mac/Linux)。
  3. 配置环境变量:
    • 设置 GRADLE_HOME 指向解压目录
    • 将 %GRADLE_HOME%\bin(Windows)或 $GRADLE_HOME/bin(Unix)添加到 PATH
  4. 验证安装:打开新终端,输入 gradle -v,如果出现版本信息和 Groovy 版本号,就成功了。
# Windows 环境变量设置(用户变量或系统变量)
GRADLE_HOME = C:\tools\gradle-8.5
PATH 追加 ;%GRADLE_HOME%\bin

# Linux / macOS(编辑 ~/.bashrc 或 ~/.zshrc)
export GRADLE_HOME=/opt/gradle-8.5
export PATH=$GRADLE_HOME/bin:$PATH

# 生效后验证
source ~/.zshrc
gradle -v

方式二:通过 SDKMAN 安装(推荐多版本管理)

SDKMAN 是 Unix 系统上管理多个 SDK 版本的神器。我自己平时开发会同时用到 Gradle 7.x 和 8.x,用 SDKMAN 切换起来特别方便。

# 安装 SDKMAN(需要 curl 和 unzip)
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"

# 查看可用 Gradle 版本
sdk list gradle

# 安装指定版本(例如 8.5)
sdk install gradle 8.5

# 切换默认版本
sdk default gradle 8.5

# 验证
gradle -v

💡 我个人小技巧: 用 SDKMAN 安装后,它会自动配置环境变量,省去手动设置 GRADLE_HOME 的步骤。而且你可以在项目根目录放一个 .sdkmanrc 文件,写上 java=17.0.9-tem 和 gradle=8.5,进到该目录自动切换版本——这点在团队开发中特别实用。

环境变量设置详解

除了 GRADLE_HOME 和 PATH,还有几个环境变量值得一提:

  • GRADLE_USER_HOME:默认是 ~/.gradle。Gradle 会把缓存依赖、wrapper jar、构建缓存都放这里。如果你 C 盘空间吃紧,可以改到其他盘,比如 GRADLE_USER_HOME=D:\gradle-cache。
  • JAVA_HOME:必须指向 JDK 安装目录。Gradle 启动时靠它来找 JDK,如果没设或者指向了 JRE,会报错。

实际项目中,我经常见到有人因为 JAVA_HOME 指向了错误的 JDK 版本,导致“找不到符号”之类的编译错误。记住:Gradle 自己检测 JDK 的时候,走的是 JAVA_HOME,不是 PATH 里的 java。

本章知识体系

把上面讲的内容串起来,就是下图所示的核心脉络。从 Gradle 的基本能力出发,到安装前的 JDK 兼容性检查,再到两种安装方式,最后配置环境变量并验证——你照着这个流程走一遍,基本不会出问题。

第1章 Gradle简介与安装配置·知识框架 Gradle 自动化构建工具 JDK版本兼容性 JDK兼容性速查表 Gradle 8.x → JDK 17~21 Gradle 7.x → JDK 8~18 Gradle 6.x → JDK 8~15 Gradle 5.x → JDK 8~14 两种安装方式 手动安装 SDKMAN安装 环境变量设置与验证

你可以把这张图当作一个检查清单:先理解 Gradle 是什么,然后确认 JDK 版本是否在兼容范围内,接着选择手动或 SDKMAN 安装,最后配置环境变量并跑 gradle -v 验证。每一步都不复杂,但顺序错了就容易出问题。

⚠️ 提醒一下: 装完之后,建议立刻用 gradle wrapper 命令生成项目的 Wrapper 文件(build.gradle、gradlew、gradlew.bat)。这样你的团队其他人 clone 项目后,直接用 ./gradlew build 就能自动下载对应版本的 Gradle,省去每个人手动安装的麻烦。这一步虽然不是必选项,但我觉得是一个好习惯。