Gradle 官方博客日前发布文章,系统阐述了团队为何如此激进地推动 JDK 版本升级——背后的核心理念被他们称为"Javamaxxing"。简言之:新版本 JVM 能让构建更快、更省内存、更易维护,而 Gradle 的工具链机制让这一切成为可能,而不需要求开发者放弃旧的 Java 版本兼容性。

Gradle 提升最低支持 JDK 版本要求
Gradle 在 JDK 版本策略上有一个清晰的路线图:Gradle 9.0.0(2025 年 7 月 31 日)将 Daemon 最低支持的 JVM 版本提升至 Java 17——这是自 Gradle 5.0 在 2018 年设定 Java 8 基线以来的首次上调。Gradle 9.6.0 废弃了 Java 17 以下的 Daemon,而 Gradle 10.0.0 将直接要求 Java 21。
这一时间表与 Oracle 的支持路线图高度吻合:Java 17 的 Premier Support 将于 2026 年 9 月结束。Gradle 团队选择主动跟随,而非滞后于行业主流。
用户已经在升级:约 80% 的 Gradle 9 用户已经在使用 Java 21 以上,约 30% 已经在使用 Java 25。这说明社区对 JDK 升级的接受度比预期更高,新版本并没有因为"破坏兼容性"而遭到抵制。
性能收益:新 JDK 带来的实质提升
文章重点介绍了两个直接受益于新 JDK 的特性。第一个是 JEP 519 引入的紧凑对象头(Compact Object Headers):该特性将对象头从 12 字节压缩至 8 字节,在实际测试中带来了约 22% 的堆内存占用降低和约 8% 的 CPU 时间减少。这对于大规模构建而言是实质性的资源节省。
第二个是 JEP 484 的类文件 API(Class-File API),该特性在 JDK 24 中标准化,使标准 JDK 能够原生进行字节码操作,而无需依赖第三方字节码库。这意味着 Gradle 可以在未来版本的构建管道中减少外部依赖,从而降低维护成本和潜在的兼容性问题。
此外,新版 JVM 自带的自动优化——更好的 JIT 编译、垃圾回收、逃逸分析、启动性能和内存管理——也在持续为 Gradle 构建提速提供免费的午餐。
工具链机制:运行 Gradle 的 JVM 与编译代码的 JVM 完全独立
到这里,文章揭示了关键的工程设计:Gradle 使用 JVM Toolchains 使得"运行 Gradle 的 JVM"和"编译、测试、执行代码的 JVM"完全隔离。这意味着你可以用 JDK 26 运行 Gradle 构建系统,同时通过 toolchain 配置让最终产物兼容 Java 8:
java {
toolchain {
languageVersion = JavaLanguageVersion.of(8)
}
}
这一设计解决了企业升级中的核心矛盾:团队想用最新的 JDK 运行构建工具以获得性能和安全性收益,但又需要产出面向旧版本 Java 的工件。Gradle 的工具链机制让这二者不再冲突——升级构建工具不需要同步升级用户的生产目标版本。
参考来源:https://blog.gradle.org/gradle-is-javamaxxing