Gradle 配置 环境变量
目录
Gradle 的配置
Gradle 的版本配置
- 环境变量
GRADLE_HOME
:仅仅是为了可以在任意目录中执行gradle
命令,没有特殊的意义 gradlew
和gradlew.bat
:封装 gradle 的脚本,目的是为了更方便的使用 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](file:///D:/_dev/gradle/GRADLE_HOME/gradle-6.7/)Path
:[%GRADLE_HOME%\bin](file:///D:/_dev/gradle/GRADLE_HOME/gradle-6.7/bin/)
- 将
gradle
添加到Path
的目的是为了,可以在任意目录中执行gradle
命令。 - 实际上,完全没必要设置环境变量
GRADLE_HOME
,Do we really need GRADLE_HOME?
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
,因为在项目根目录有 gradlew
和 gradlew.bat
这两个可执行文件,所以 能且仅能 在项目根目录中执行 gradlew
命令。
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 forUN*X
gradlew.bat
:Gradle startup script forWindows
之所以添加这个 gradlew
脚本,是为了:
- 统一项目所使用的
gradle
版本,避免不同开发人员使用不同的gradle
版本导致的兼容性问题 - 可以把
gradle-wrapper.properties
里面的下载gradle
的地址切换到公司的公共空间上,以加快下载速度
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
决定。
#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 版本不同,建议勾选此配置(也是默认配置)。
- 为了防止和在 Terminal 中执行
- 当勾选
Specified location
时,使用指定目录下的 gradle 版本。- 如果 gradle 下载很慢,就可以勾选此配置,以便使用指定本地下载好的
gradle
版本。
- 如果 gradle 下载很慢,就可以勾选此配置,以便使用指定本地下载好的
不管在 IDEA 中怎么配置,在 Terminal 中执行
gradlew
命令时,所使用的gradle
版本都是由gradle-wrapper.properties
决定的,并且下载路径也都是由环境变量GRADLE_USER_HOME
决定的。
Gradle 依赖的 JDK 配置
这里的 JDK 指的是执行 Gradle 命令依赖的 JDK,并非 AndroidStudio 工程依赖的 JDK。
- 通过
File | Settings | Build, Execution, Deployment | Build Tools | Gradle
设置的 JDK,是在运行 IDEA 图形化按钮时使用的。 - 通过
gradle.properties
设置的 JDK,是在 Terminal 中执行gradlew
命令时使用的。
org.gradle.java.home=C\:/_dev/Android/Android Studio/jre
注意:AGP 从
7.0.0-alpha02
版本起,需要使用 Java 11
2017-05-22
本文来自博客园,作者:白乾涛,转载请注明原文链接:https://www.cnblogs.com/baiqiantao/p/6890674.html