Gradle的环境配置

Gradle的环境配置

原文地址:https://www.cnblogs.com/baiqiantao/p/6890674.html

Installing Gradle: https://docs.gradle.org/current/userguide/installation.html

  • gradlew 和 gradlew.bat:封装 gradle 的脚本,目的是为了更方便的使用 gradle
  • 环境变量 GRADLE_HOME:仅仅是为了可以在任意目录中执行 gradle 命令,没有特殊的意义
  • 环境变量 GRADLE_USER_HOME:控制在命令行中执行 gradlew 命令时,gradle 下载的目录
  • IDEA 的 Gradle user home:控制在 IDEA 点击按钮执行各项 Task 等功能时,gradle 下载的目录
  • IDEA 的 User from gradle:控制在 IDEA 点击按钮执行各项 Task 等功能时,使用的 gradle 的版本

环境变量 GRADLE_HOME

设置环境变量 GRADLE_HOME 的目的,仅仅是为了方便在 Path 中指定 gradle 的位置。
GRADLE_HOME:D:_dev\gradle_GRADLE_HOME\gradle-6.7
Path:%GRADLE_HOME%\bin
将 gradle 添加到 Path 的目的是为了,可以在任意目录中执行 gradle 命令。
实际上,完全没必要设置环境变量 GRADLE_HOME,Do we really need GRADLE_HOME?

1
2
3
4
5
6
gradle -v           # 查看版本
gradle --help # 查看命令使用帮助

λ where gradle # 查看 gradle 命令位置
D:\_dev\gradle\GRADLE_HOME\gradle-6.7\bin\gradle
D:\_dev\gradle\GRADLE_HOME\gradle-6.7\bin\gradle.bat

gradlew 是干嘛的

其实 gradlew 只是一个 gradle 的封装(wrapper),gradlew = gradle wrapper,因为在项目根目录有 gradlewgradlew.bat 这两个可执行文件,所以 能且仅能 在项目根目录中执行 gradlew 命令。

1
2
3
4
5
6
D:\_dev\_code\as\Test> gradlew -v       # 查看版本
D:\_dev\_code\as\Test> gradlew --help # 查看命令使用帮助

D:\_dev\_code\as\Test> where gradlew # 查看 gradlew 命令位置
D:\_dev\_code\as\Test\gradlew
D:\_dev\_code\as\Test\gradlew.bat

这两个文件头部的注释也说明了他们的作用:

  • gradlew:Gradle start up script for UN*X
  • gradlew.bat:Gradle startup script for Windows

之所以添加这个 gradlew 脚本,是为了:

统一项目所使用的 gradle 版本,避免不同开发人员使用不同的 gradle 版本导致的兼容性问题
可以把 gradle-wrapper.properties 里面的下载 gradle 的地址切换到公司的公共空间上,以加快下载速度

1
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip

环境变量 GRADLE_USER_HOME

设置环境变量 GRADLE_USER_HOME 的目的,是为了自定义下载 gradle 时的本地存储路径。
在命令行中执行 gradlew 命令(注意不是 gradle 命令)时,会将对应版本的 gradle 下载到此目录中。
下载 gradle 时,下载地址及版本由项目中的 /gradle/wrapper/gradle-wrapper.properties 决定。

1
2
3
4
5
6
#Mon Nov 16 00:55:48 CST 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip

IDEA 的 Gradle user home

在 IDEA 的 File | Settings | Build, Execution, Deployment | Build Tools | Gradle 中,有一个 Gradle user home 的配置,其作用和环境变量 GRADLE_USER_HOME 类似,只不过该配置只是给 IDEA 使用的。譬如点击 gradle 窗口的各种 Task 按钮执行各项 Task 功能时。

注意:仅 IDEA 中的各种图形化操作会使用此配置,在 IDEA 的 Terminal 中执行 gradlew 命令时,使用的依旧是环境变量 GRADLE_USER_HOME

IDEA 的 User from gradle

在 IDEA 的 File | Settings | Build, Execution, Deployment | Build Tools | Gradle 中,有一个 User from gradle 的配置,它也是仅提供给 IDEA 使用的(对 gradlew 无效)。

其作用是,指定当前工程中 IDEA 所使用的 gradle 版本:

当勾选 gradle-wrapper.properties 时,使用 gradle-wrapper.properties 中指定的 gradle 版本。
为了防止和在 Terminal 中执行 gradlew 命令时使用的 gradle 版本不同,建议勾选此配置(也是默认配置)。
当勾选 Specified location 时,使用指定目录下的 gradle 版本。
如果 gradle 下载很慢,就可以勾选此配置,以便使用指定本地下载好的 gradle 版本。

不管在 IDEA 中怎么配置,在 Terminal 中执行 gradlew 命令时,所使用的 gradle 版本都是由 gradle-wrapper.properties 决定的,并且下载路径也都是由环境变量 GRADLE_USER_HOME 决定的。

org.gradle.java.home 配置

这里的 JDK 指的是执行 Gradle 命令依赖的 JDK,并非 AndroidStudio 工程依赖的 JDK。

通过 File | Settings | Build, Execution, Deployment | Build Tools | Gradle 设置的 JDK,是在运行 IDEA 图形化按钮时使用的。
通过 gradle.properties 设置的 JDK,是在 Terminal 中执行 gradlew 命令时使用的。

1
2
3
4
5
6
# MacOS的路径写法
org.gradle.java.home=/Applications/Android Studio.app/Contents/jbr/Contents/Home

# Windows系统的路径写法参考如下
# org.gradle.java.home=C:\\Program Files\\Java\\jdk1.8.0_144
# org.gradle.java.home=C\:/_dev/Android/Android Studio/jre

注意:AGP 从 7.0.0-alpha02 版本起,需要使用 Java 11

作者

Dench

发布于

2022-08-15

更新于

2022-08-15

许可协议

CC BY-NC-SA 4.0

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×