持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第2天,点击查看活动详情
我们知道,Gradle Wrapper 的作用就是可以让电脑没有Gradle 环境的情况下,可以运行Gradle 项目。那么Gradle Wrapper 内部的具体细节是什么样的呢?我们通过这篇文章来看一下。
- 举例来说,比如你clone 了一个Gradle 项目,但是你的电脑上没有Gradle 环境
- 那么你在构建Gradle 项目的时候,Gradle Wrapper 就会从
gradle-wrapper.properties
指定的下载位置下载Gradle,解压到电脑上的指定位置 - 然后你就可以在Gradle 项目的命令行中运行gradlew 脚本来执行gradle 命令
- 比如说你想执行gradle build,那么你在命令行中输入gradlew build 就可以了
Gradle wrapper 中各个文件的作用:
- gradlew:在linux 平台中执行gradle 命令的脚本
- gradlew.bat:在windows 平台下执行gradle 命令的脚本
- gradle-wrapper.jar:Gradle Wrapper 运行时的逻辑的相关代码在这里
- gradle-wrapper.properties:指定Gradle 的下载位置和解压位置
greadle-wrapper.properties 文件中的字段名解释:
- distributionBase:这个是下载的Gradle 之后的压缩包解压后的主目录,为GRADLE_USER_HOME
在windows 中它的路径为C:/user/user_name/.gradle/
在mac 中的路径为~/.gradle/ - distributionPath:是相对于distributionBase 的路径,然后解压Gradle的路径,是wrapper/dists
- distributionUrl:这个是Grade 压缩包的下载地址,就是在这里决定下载的Gradle 版本和版本类型(binary或complete)。例如gradle-6.5-all.zip表示 Gradle 6.5的complete 版本;gradle-6.5-bin.zip 表示Gradle 6.5 的binary 版本
- zipStoreBase:和distributionBase 一样,是表示存放下载的Gradle的压缩包的主目录
- zipStorePath:和distributionPath 一样,是表示存放下载的Gradle的压缩包的路径
这样,在使用Gradle Wrapper 之后,对于相同的项目,在不同的电脑环境中,可以使用统一的Gradle 版本。同时,对于没有Gradle 环境的用户,也不必配置安装Gradle 环境,提高了效率。