Gradle, 目录

Gradle 是以 Groovy / Kotlin DSL 为基础的 JVM 自动化构建工具,面向 Java 等语言项目。常见构建脚本为 build.gradle(Groovy)或 build.gradle.kts(Kotlin DSL)。

Gradle 与 Gradle Wrapper(gradlew)

很多人第一次 clone 项目时会疑惑:明明没装 Gradle,为什么 ./gradlew test 也能跑? 答案就在 Wrapper。

是什么关系

概念 说明
Gradle 安装在系统上的构建工具,命令是 gradle(例如 brew install gradle、SDKMAN)
Gradle Wrapper 项目自带的一层「启动器」,命令是 ./gradlew(Windows 用 gradlew.bat)
关系 gradlew 不负责实现编译逻辑;它只负责下载并启动项目指定版本的 Gradle,再把 test、build 等任务交给真正的 Gradle 执行

一句话:Gradle 是引擎,gradlew 是带版本号的点火钥匙。

日常开发、CI 里应优先用 ./gradlew,而不是裸 gradle。这样所有人、每台机器用的是 gradle-wrapper.properties 里锁定的同一版本,避免「我这能编、你那报错」。

Wrapper 相关文件

这些文件应提交到 Git(官方建议):

路径 作用
gradlew Unix/macOS 启动脚本
gradlew.bat Windows 启动脚本
gradle/wrapper/gradle-wrapper.jar 小 bootstrap 程序,负责下载真正的 Gradle 发行包
gradle/wrapper/gradle-wrapper.properties 锁定 Gradle 版本,核心是 distributionUrl

distributionUrl 示例:

distributionUrl=https\://services.gradle.org/distributions/gradle-9.6.0-bin.zip

首次运行 ./gradlew 时,Wrapper 会把对应 zip 下载到 ~/.gradle/wrapper/dists/,之后复用缓存。

执行流程(简化)

./gradlew test
    → gradlew 读取 gradle-wrapper.properties
    → 本地无该版本则下载 Gradle 9.6.0
    → 启动 Gradle Daemon
    → 执行 test 任务(编译、跑 JUnit 等)

何时用 gradle,何时用 ./gradlew

场景 推荐命令
日常编译、测试、打包 ./gradlew build、./gradlew test
CI / 协作者未装 Gradle 只能用 ./gradlew
升级项目 Wrapper 版本 本机需已装 Gradle:gradle wrapper --gradle-version 9.6.0
临时全局试命令 gradle(版本随本机安装,可能与项目不一致)

JDK 与 Gradle 版本也要匹配。 例如 JDK 26 需要 Gradle 9.4+ 才能作为运行 Gradle 的 JVM;老项目若 Wrapper 仍是 8.x,在 JDK 26 上可能直接启动失败——这时应升级 Wrapper,而不是降级 JDK。

常用 Wrapper 命令

./gradlew tasks          # 列出可用任务
./gradlew test           # 运行全部单元测试
./gradlew build          # 编译 + 测试 + 打包
./gradlew run            # 运行 application 插件配置的 main(若项目配置了)
./gradlew --version      # 查看本项目 Wrapper 锁定的 Gradle 版本

更多任务示例见 Gradle basic, command。

项目目录里常见文件

路径 是否提交 Git 说明
build.gradle / build.gradle.kts 是 构建脚本
settings.gradle / settings.gradle.kts 是 多模块项目入口
gradle/wrapper/ 是 Wrapper 二进制与版本配置
gradlew、gradlew.bat 是 Wrapper 启动脚本
src/ 是 源码
build/ 否 编译产物
.gradle/ 否 Gradle 缓存与元数据,本地自动生成
out/ 否 部分 IDE 输出目录

Gradle 与 Maven 对比(JDK 26 背景下)

两者都是 JVM 项目的构建工具:Gradle 用 Groovy/Kotlin DSL(build.gradle.kts),Maven 用 XML(pom.xml)。在 JDK 26 时代,「能不能用新 JDK」已不再是 Gradle 的独占优势——最新稳定版两边都能跑,选型应看项目形态和团队习惯。

JDK 26 兼容性

Gradle 9.6 Maven 3.9.16
构建工具本身跑在 JDK 26 上 9.4+ 官方支持 3.9.15+ 已修复 Java 26 控制台等问题
用 JDK 26 编译 / 测试 Toolchain + sourceCompatibility Toolchains + maven-compiler-plugin
版本锁定 Wrapper ./gradlew + gradle-wrapper.properties ./mvnw + .mvn/wrapper/maven-wrapper.properties

JDK 26 的语言与编译变化(默认 --release 26、JEP 500 等对反射的限制等)主要靠 编译器与依赖库升级 解决;构建工具负责调度,不替代码自动适配新语法。

版本门槛(2026 年中): JDK 26 上跑 Gradle 需 Wrapper 9.4+;Maven 建议 3.9.15+。老 Wrapper(如 Gradle 8.x)在 JDK 26 上可能直接启动失败,应升级 Wrapper 而非降级 JDK。

核心差异

维度 Gradle Maven
配置风格 DSL 脚本,可写逻辑与抽象 XML + 约定,结构固定
学习曲线 灵活但脚本可能变复杂 标准项目上手快,XML 冗长
扩展方式 自定义 task、插件、Kotlin 代码 插件 + profile,少写「构建逻辑」
大型 / 多模块项目 Configuration Cache、增量构建往往更有优势 成熟稳定,企业模板多
生态示例 Spring Boot、Android 文档里 Gradle 常见 传统企业 Java、发布与私服插件极广
适合场景 多模块、定制 task、已在用 Kotlin DSL 标准 Java 库、团队偏好「零脚本」构建

各自仍有的优势

Gradle 更适合:

  • 多模块 monorepo,构建脚本需要条件分支、任务编排
  • 需要 Configuration Cache / Build Cache 优化增量构建
  • 项目已用 build.gradle.kts,或团队熟悉 Kotlin DSL
  • 与 Spring Boot Gradle 插件、Android Gradle Plugin 等深度集成

Maven 更适合:

  • 标准 Java 项目:依赖 + 插件即可,不想在构建里写代码
  • 团队统一 pom.xml 结构,CI / 运维模板遍地
  • 企业发布、签名、私服、静态分析等靠成熟 Maven 插件链
  • 追求「构建只描述 what,不描述 how 的程序逻辑」

小项目怎么选

单模块 demo、几个 main + JUnit(例如本地 java-playground 一类仓库):Gradle 与 Maven 都能胜任,JDK 26 不是换工具的理由。若已配置好 ./gradlew,继续用 Gradle 即可;若团队只熟 Maven,换过去也不会因为 JDK 26 而吃亏。

JDK 26  →  两者都支持,构建工具升到最新稳定版即可
选哪个  →  看项目复杂度与团队习惯,不是看 JDK 版本

Maven 基础命令见 mvn, maven basic。

Gradle 修改缓存目录 .gradle 路径

export GRADLE_USER_HOME=/Users/lshare/.gradle

背景:Android Studio 的 Gradle 在缓存处理上有时会出问题,必要时需要手动删缓存再编译;有时也需要把缓存指到别的磁盘。

一针见血的设置方法(本文采用)

在 Gradle 安装目录,编辑 bin/gradle,找到:

# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this

在其下增加:

GRADLE_OPTS=-Dgradle.user.home=/yourpath/gradle/gradle_cache

适合需要用 Gradle 脚本编译、且希望全局生效的环境。

其他方法

方法 1:Android Studio 设置里改 Service directory path(仅 AS 编译场景)。

方法 2:在 gradle.properties 中增加(每个项目都要加一次):

gradle.user.home=D:/Cache/.gradle

方法 3:环境变量(推荐与上面二选一):

export GRADLE_USER_HOME=D:/Cache/.gradle

方法 4:命令行参数:

gradle -g D:/Cache/.gradle build

gradle -help 可查看各参数含义。

总结:个人推荐改 bin/gradle 或设置 GRADLE_USER_HOME。

参考:CSDN - Gradle 修改缓存路径

维护记录

时间 修改内容 原因
2026-06-20 补充 Gradle 与 gradlew(Wrapper)关系、文件说明、常用命令;修正 categories;截断英文段落并入正文 说明 Wrapper 机制,便于 java-playground 等项目的日常用法
2026-06-20 补充 Gradle 与 Maven 对比(含 JDK 26 兼容性);文内 Gradle 版本示例更新为 9.6.0 选型参考