Gradle Wrapper

Posted rainboy2010

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gradle Wrapper相关的知识,希望对你有一定的参考价值。

简介

Gradle Wrapper就是对Gradle的一层封装,一个项目可以使用指定的gradle版本进行构建而不受当前机器安装的gradle版本影响,便于一台机器的多个项目使用不同的gradle版本进行构建而互不影响。当执行gradlew命令的时候,wrapper会检查缓存判断当前机器是否已经安装了对应版本的gradle,如果安装了那么gradlew就会委托gradle执行用户输入的命令,如果还未安装的话,那么首先会自动帮我们从配置的下载地址下载。因此使用gradle的正确姿势是使用gradlew而不是gradle命令,因内网无法连接到外网去下载指定的gradle版本,我们需要手动将对应的gradle版本放在缓存目录。

Windows命令: gradlew xxx

Linux命令: ./gradlew xxx

技术分享图片

Wrapper的配置文件是gradle\\wrapper\\gradle-wrapper.properties

技术分享图片

如上图所示则执行gradlew命令时指定使用gradle 4.4版本构建项目

PS:每一个android Studio项目都有gradle wrapper,可以在项目根目录下查看

缓存

Gradle的默认缓存目录为~/.gradle,即用户主目录下的.gradle目录,如不设置环境变量GRADLE_USER_HOME,wrapper对应的缓存目录为~/.gradle/wrapper/dists,如设置环境变量GRADLE_USER_HOME,则wrapper对应的缓存目录为$GRADLE_USER_HOME/wrapper/dists

配置

此处以gradle-4.4-all.zip为例

1.将gradle-4.4-all.zip放入以下目录:

~/.gradle\\wrapper\\dists\\gradle-4.4-all\\9br9xq1tocpiv8o6njlyu5op1,路径中的任何目录如gradle-4.4-all不存在创建即可,其中9br9xq1tocpiv8o6njlyu5op1为按照一定规则生成的字符串,可参考Gradle缓存目录文件命名规则

2.解压gradle-4.4-all.zip到当前目录

  unzip gradle-4.4-all.zip(Linux)

3.建立空文件gradle-4.4-all.zip.lck和gradle-4.4-all.zip.ok

touch gradle-4.4-all.zip.lck gradle-4.4-all.zip.ok(Linux)

最后的目录结构如下:

技术分享图片

验证

创建一个目录如test,然后执行gradle wrapper命令,然后修改配置文件gradle\\wrapper\\gradle-wrapper.properties中的distributionUrl,如修改后的文件如下:

技术分享图片

此时在test目录下执行gradlew –v,如显示版本信息,则配置成功

技术分享图片

 

以上是关于Gradle Wrapper的主要内容,如果未能解决你的问题,请参考以下文章

gradle sts 与 gradle 有何区别

简单理解Gradle,Gradle是什么,一分钟入门Gradle

GroovyGradle 环境搭建 ( 下载 Gradle 工具 | 查找本地缓存的 Gradle 工具 | 配置 Gradle 环境变量 )

Android Gradle 插件Gradle 构建工具简介 ① ( Gradle 环境配置 | 官网下载 Gradle 软件包 | 在本地用户目录下查找 | 配置 Gradle 环境变量 )

Android Gradle 插件Gradle 依赖管理 ① ( org.gradle.api.Project 配置 | Android Gradle 插件配置与 Gradle 配置关联 ) ★

gradle wrapper, gradle ,gradle plugin 之间的关系