【Android】gradlew.bat & gradlew
gradlew.bat和gradlew的生成和调用
- Android Studio 创建项目
File ➡️ New ➡️ New Project ➡️ Empty Compose Activity
- Android Studio 自动生成Gradle Wrapper 文件
- 使用当前推荐的Gradle版本(如 8.4)
- 生成完整的Wrapper结构
gradlew.bat
gradlew
gradle/wrapper/gradle-wrapper.jar
gradle/wrapper/gradle-wrapper.properties
- 手动生成 (已有项目添加 Wrapper)
可以用已安装的Gradle生成:gradle wrapper --gradle-version 8.4
谁调用gradlew.bat/gradlew
- Android Studio (最常见)
- 当在Android Studio 中点击任何构建操作时,IDE会调用gradlew:
| 操作 | 实际执行的命令 |
|---|---|
| 点击 Run 'app' | gradlew.bat assembleDebug gradlew.bat installDebug |
| 点击Build→Build Bundle(s)→APK(s)→Build APK(s) | gradlew.bat assembleDebug |
| 点击Build→Clean Project | gradlew.bat clean |
| 点击Build→Rebuild Project | gradlew.bat clean build |
| Gradle面板双击 assembleRelease | gradlew.bat assembleRelease |
- 查看 Android Studio 实际执行的命令
- 打开Build窗口(底部面板)
- 展开构建输出,第一行会显示完整命令
示例:
> Task :app:assembleDebug
Executing task 'assembleDebug' (cmd: D:\path\to\gradlew.bat assembleDebug)
- 命令行手动调用
- Windows
gradlew.bat assembleDebug - Linux/Mac
./gradlew assembleDebug
- 批处理脚本
- build.bat
echo Building Debug APK...
call gradlew.bat assembleDebug|assembleRelease
// 带参数
call gradlew.bat assembleRelease -PenableDeviceBinding=true -PbindingId=%BINDING_ID%
- CI/CD 系统(持续集成)
在GitLab CI、Jenkins等环境,示例如下
// GitLab
- name: Build APK
run: ./gradlew assembleRelease
// Jenkins
sh './gradlew clean assembleRelease'
- gradlew.bat中关键命令说明
-
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* -
功能: 启动Java虚拟机,运行 Gradle Wrapper 主类
-
作用: 相当于执行
java -classpath gradle-wrapper.jar org.gradle.wrapper.GradleWrapperMain assembleDebug
| 部分 | 说明 |
|---|---|
| %JAVA_EXE% | Java可执行文件路径(java.exe),脚本前面从JAVA_HOME查找 |
| %DEFAULT_JVM_OPTS% | 默认JVM参数(如 -Xmx2048m 最大内存) |
| %JAVA_OPTS% | 用户自定义的Java选项(环境变量,通常为空) |
| %GRADLE_OPTS% | Gradle 专用选项(如 -Dorg.gradle.daemon=true) |
| "-Dorg.gradle.appname=%APP_BASE_NAME%" | 系统属性,设置 Gradle应用名为gradle 或 gradlew |
| -classpath "%CLASSPATH%" | 指定类路径为前面设置的gradle-wrapper.jar |
| org.gradle.wrapper.GradleWrapperMain | 要运行的Java主类(在JAR包里) |
| %* | 传递所有命令行参数(如 assembleDebug、-PenableDeviceBinding=true) |
附加
- 查看所有可用任务: `gradlew.bat tasks --all`

浙公网安备 33010602011771号