gradlew是Gradle Wrapper的可执行脚本,用于自动下载并运行项目指定版本的Gradle,无需本地预装;首次生成wrapper需系统已安装任意版本Gradle(如5.x),通过gradle wrapper --gradle-version 8.5等命令创建,生成后文件必须全部提交Git以确保团队构建一致。

直接用 gradle wrapper 就行,不需要先装 Gradle 也能跑(但前提是本地已有某个版本的 Gradle 可调用)
为什么是 gradle wrapper 而不是 ./gradlew wrapper
因为 ./gradlew 本身还不存在——它就是这个命令要生成的目标文件。首次生成必须依赖系统已安装的 Gradle 来驱动脚本创建过程。
- 执行时会读取当前环境变量中的
GRADLE_HOME或 PATH 里的gradle命令 - 它不关心版本高低,哪怕只有 Gradle 5.x 也能生成指向 8.5 的 wrapper
- 如果本地完全没装 Gradle,命令会报错:
command not found: gradle,这时得先装一个最低可用版本(比如从 gradle.org/install 下载二进制包解压并配 PATH)
推荐带上 --gradle-version 参数
不加参数时,gradle wrapper 默认使用你本地 Gradle 的版本生成配置,容易和项目实际需求脱节。尤其在 Android 项目中,Gradle 版本必须和 com.android.tools.build:gradle 插件严格匹配。
- 指定版本:
gradle wrapper --gradle-version 8.5 - 指定完整分发包(含文档和源码,调试更方便):
gradle wrapper --gradle-version 8.5 --distribution-type all - 生成后立刻检查
gradle/wrapper/gradle-wrapper.properties中的distributionUrl是否符合预期
生成后别忘了提交到 Git
Wrapper 文件不是临时产物,而是构建契约的一部分。以下文件必须进版本库:
-
gradlew(Linux/macOS 可执行脚本) -
gradlew.bat(Windows 批处理) gradle/wrapper/gradle-wrapper.jargradle/wrapper/gradle-wrapper.properties
漏掉任意一个,其他成员执行 ./gradlew build 就会失败——常见报错是 Cannot find wrapper properties 或 No such file or directory: ./gradlew。
真正容易被忽略的是:生成 wrapper 后第一次运行 ./gradlew 时,它会去下载对应版本的 Gradle 到 ~/.gradle/wrapper/dists/,这个过程依赖网络且可能超时;如果公司内网无法访问 services.gradle.org,就得提前改 distributionUrl 指向内部镜像或本地路径。


















