---页首---

【Android】gradlew.bat & gradlew

gradlew.bat和gradlew的生成和调用

  1. 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
  1. 手动生成 (已有项目添加 Wrapper)

可以用已安装的Gradle生成:gradle wrapper --gradle-version 8.4

谁调用gradlew.bat/gradlew

  1. 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)
  1. 命令行手动调用
  • Windows gradlew.bat assembleDebug
  • Linux/Mac ./gradlew assembleDebug
  1. 批处理脚本
  • build.bat
echo Building Debug APK...
call gradlew.bat assembleDebug|assembleRelease
// 带参数
call gradlew.bat assembleRelease -PenableDeviceBinding=true -PbindingId=%BINDING_ID%
  1. CI/CD 系统(持续集成)

在GitLab CI、Jenkins等环境,示例如下

// GitLab
- name: Build APK
  run: ./gradlew assembleRelease
// Jenkins
sh './gradlew clean assembleRelease'
  1. 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`

posted @ 2026-09-17 20:36  20190311  阅读(8)  评论(0)    收藏  举报
---页脚---