Gradle 官方博客日前發布文章,系統闡述了團隊為何如此激進地推動 JDK 版本升級——背后的核心理念被他們稱為"Java 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。
}這一設計解決了企業升級中的核心矛盾:團隊想用最新的 JDK 運行構建工具以獲得性能和安全性收益,但又需要產出面向舊版本 Java 的工件。Gradle 的工具鏈機制讓這二者不再沖突——升級構建工具不需要同步升級用戶的生產目標版本。
參考來源:https://blog.gradle.org/gradle-is-javamaxxing[1]
References
- https://blog.gradle.org/gradle-is-javamaxxing: https://blog.gradle.org/gradle-is-javamaxxing
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.