【转】Gradle Wrapper 详解

什么是 Gradle Wrapper

关于“什么是 Gradle Wrapper?”这个问题在官网是这么定义的:

The recommended way to execute any Gradle build is with the help of the Gradle Wrapper (in short just “Wrapper”). The Wrapper is a script that invokes a declared version of Gradle, downloading it beforehand if necessary. As a result, developers can get up and running with a Gradle project quickly without having to follow manual installation processes saving your company time and money.

大致意思就是:官方建议任何 Gradle 构建方法在 Gradle Wrapper 帮助下运行。Gradle Wrapper 它是一个脚本,调用了已经声明的 Gradle 版本,并且我们编译时需要事先下载它。所以,开发者能够快速的启动并且运行 Gradle 项目,不用再手动安装,从而节省了时间成本。

我们可以称 Gradle Wrapper 为 Gradle 包装器,是将 Gradle 再次包装。让所有的 Gradle 构建方法在 Gradle 包装器的帮助下运行。

为什么需要 Gradle Wrapper

我们日常开发中肯定都是一个团队在开发,如果没有 Gradle Wrapper 的话,那么团队中每来一个新同事,就需要在电脑中安装 Gradle 环境。但是有时候我们不同项目 Gradle 的版本又是不一样的,这就为我们的开发工作带来了不便。

于是乎 Gradle 就提供了 Gradle Wrapper,可以让我们的电脑中不安装 Gradle 环境也可以运行 Gradle 项目。这就是上面官方介绍中所说的 Gradle 是一个脚本,调用事先声明的 Gradle 版本,编译前去下载它,这样我们的电脑中就不用再去手动安装 Gradle 环境了,从而间接的提高了我们的开发效率。

如何构建 Gradle Wrapper

要想构建 Gradle Wrapper 就必须本地先配置了 Gradle 环境变量,Gradle 的命令中已经内置了 wrapper 命令,其实就是执行 warpper 任务。该任务就是生成我们前面说的 gradle 文件夹及它的子目录 wrapper 文件夹。在根目录下我们先删掉 gradle 文件夹,然后在项目根目录执行 gradle wrapper 命令。

我们会看到会重新生成 Gradle 文件夹如下:

image-20230516133007798

这两个文件的含义如下:

  • gradle-wrapper.jar: 既然是 jar 包,那么它肯定是包含了 Gradle 运行时的逻辑代码
  • gradle-wrapper.properties: 这个文件主要负责配置 Gradle wrapper 运行时的属性文件,声明具体使用哪个版本的 Gradle

配置 Gradle Wrapper

我们上面说gradle-wrapper.properties文件指明了 Gradle 的版本号,和 Gradle 运行时的行为属性文件。下面我们具体看下这个文件的内容:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.0.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

关于每个字段的意思如下:

  • distributionBase: Gradle 解包后存储的父目录
  • distributionPath: distributionBase指定目录的子目录(distributionBase+distributionPath就是 Gradle 解包后的存放的具体目录)
  • distributionUrl: Gradle 指定版本的压缩包下载地址
  • zipStoreBase: Gradle 压缩包下载后存储父目录
  • zipStorePath: zipStoreBase 指定目录的子目录(zipStoreBase+zipStorePath就是 Gradle 压缩包的存放位置)

升级Gradle Wrapper

升级 Gradle Wrapper 有 2 种方式:

  • 直接修改 distributionUrl 字段,然后执行 Gradle 命令或是点击同步按钮同步

    distributionUrl=https\://services.gradle.org/distributions/gradle-6.0.1-bin.zip
    
  • 执行 gradlew 命令

    gradlew wrapper --gradle-version 6.0.1
    
posted @ 2023-05-16 13:38  Binge-和时间做朋友  阅读(278)  评论(0编辑  收藏  举报