环境准备:打好地基才能盖高楼

说实话,很多人一上来就急着看瀑布图,结果发现扫描报告压根打不开。别急,咱先把手头这堆事情搞定。Gradle 的构建扫描说白了就是个“录像机”,但你要先把它插上电。

我刚开始用 Gradle 那会儿,直接拿包管理器装了就开干,结果插件版本死活对不上,浪费了俩小时。所以今天这章,我带你一步一步搭环境。你跟着做,十分钟就能跑出第一个扫描报告。

安装 Gradle —— 别用包管理器,至少我这么觉得

Gradle 有好几种安装方式,我个人习惯用 SDKMAN。为什么?因为它切换版本太方便了。你看我这台电脑上同时挂着 Gradle 7、8 和 9beta,说切就切。

// SDKMAN 安装(推荐)
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install gradle 8.10

如果不想装 SDKMAN,手动下载也行。记住一点:一定要装最新稳定版,别图省事用系统自带的旧版本。构建扫描功能在 5.0 以上才完整,现在都 8.x 了,老版本一堆坑。

// 验证安装
gradle --version

你看到类似这样的输出,就说明安装成了:

------------------------------------------------------------
Gradle 8.10
------------------------------------------------------------

Build time:   2024-09-30 14:00:00 UTC
Revision:     xxxxxx

Kotlin:       1.9.22
Groovy:       3.0.17
Ant:          Apache Ant 1.10.11
JVM:          17.0.8 (Oracle Corporation 17.0.8+9)
OS:           Mac OS X 14.6.1 (aarch64)

小提示:JVM 版本最好 ≥17。Gradle 8.x 对 Java 17 支持最好,跑构建扫描时也更稳定。

启用构建扫描(Build Scan)插件 —— 这才是主角

Gradle 本身不带构建扫描功能,你得装个插件。这个插件叫 com.gradle.build-scan,或者更简单的方式 —— 直接用 Gradle Enterprise 插件。

怎么配?看你的项目用 Groovy 还是 Kotlin DSL。我一般用 Groovy,因为老项目改起来快。

// build.gradle (Groovy DSL)
plugins {
    id 'com.gradle.build-scan' version '3.18.1'
}

buildScan {
    termsOfServiceUrl = 'https://gradle.com/terms-of-service'
    termsOfServiceAgree = 'yes'
}

如果你用的是 settings.gradle.kts,写法也差不多:

// settings.gradle.kts (Kotlin DSL)
plugins {
    id("com.gradle.build-scan") version "3.18.1"
}

buildScan {
    termsOfServiceUrl.set("https://gradle.com/terms-of-service")
    termsOfServiceAgree.set("yes")
}

这里有个坑:我曾经忘记加 termsOfServiceAgree,结果构建直接报错,提示我不同意协议。其实 Gradle 官方要求必须显式同意,除非你用的是企业版。个人开发者直接同意就行,没别的影响。

注意!如果你用的是 Gradle Enterprise 的内部部署版本,插件 ID 和配置方式完全不同。这里只讲公共版的 build-scan 插件。在公司内网跑的话,先问问运维团队。

生成第一个构建扫描报告

插件配好之后,怎么触发扫描?非常简单:在 Gradle 命令后面加上 --scan 参数。

// 运行任意任务,比如 build
gradle build --scan

跑完之后,终端会输出一个 URL,类似这样:

Build scan URL: https://gradle.com/s/abc123def456

点开这个链接,你就看到了第一个构建扫描报告。我第一次打开时,哇,密密麻麻的条条框框,不知道看哪。但别慌,咱们后面几章会逐块拆解。

现在你只需要确认:页面能正常打开,显示的是「Build Scan」字样,而不是 404。能打开,环境就搭好了。

关键检查点:

  • Gradle 版本 ≥ 5.0(建议用最新 8.x)
  • build-scan 插件版本与 Gradle 匹配(见官方兼容性表)
  • 终端输出 Build scan URL 且能访问

解读构建扫描首页 —— 先看个大概

扫描报告首页就像汽车的仪表盘,一堆数字和图表。我不要求你现在全看懂,但至少要知道这几个核心指标:

指标 含义 我常关注的点
Total Build Time 整个构建花了多久 超过 5 分钟就要考虑优化了
Task Count 跑了多少个 Task 多了未必好,看看哪些是多余的
Cacheable Tasks 可缓存的 Task 数量 全是 UP-TO-DATE 才是理想状态
Failed Tasks 失败的 Task 数 优先解决,否则后面都是白跑
Configuration Time 初始化配置花了多久 超过 10 秒说明你的 build.gradle 太啰嗦

嗯,看懂这五样,至少知道构建健康不健康了。后面的网络瀑布图、性能热点、依赖分析,都在更深的页面里。咱们留到后面慢慢讲。

本章核心流程:环境准备 → 首个构建扫描 1. 安装 Gradle SDKMAN / 手动下载 2. 启用 build-scan 插件 build.gradle 配置 3. gradle build --scan 生成扫描链接 4. 打开 Build Scan URL 验证页面可访问 5. 理解首页关键指标 耗时/任务数/缓存/失败 常见踩坑备忘 • 忘记加 --scan 参数?构建不会报错,但也不会生成 URL。 • 插件版本与 Gradle 不兼容?看官方兼容性表,用最新版最稳。 • 公司内网打不开 gradle.com?要么配 VPN,要么用企业内部版。

这图就是我带你做的这五个步骤。从安装到看懂首页,一条线走下来。