Gradle Wrapper

曾无好事来相访,赖尔高文一起予。这篇文章主要讲述Gradle Wrapper相关的知识,希望能为你提供帮助。
简介Gradle Wrapper就是对Gradle的一层封装,一个项目可以使用指定的gradle版本进行构建而不受当前机器安装的gradle版本影响,便于一台机器的多个项目使用不同的gradle版本进行构建而互不影响。当执行gradlew命令的时候,wrapper会检查缓存判断当前机器是否已经安装了对应版本的gradle,如果安装了那么gradlew就会委托gradle执行用户输入的命令,如果还未安装的话,那么首先会自动帮我们从配置的下载地址下载。因此使用gradle的正确姿势是使用gradlew而不是gradle命令,因内网无法连接到外网去下载指定的gradle版本,我们需要手动将对应的gradle版本放在缓存目录。
Windows命令: gradlew xxx
Linux命令: ./gradlew xxx

Gradle Wrapper

文章图片

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

文章图片

如上图所示则执行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 Wrapper】此处以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)
最后的目录结构如下:
Gradle Wrapper

文章图片

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

文章图片

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

文章图片

 

    推荐阅读