Gradle 与 Android - Gradle Wrapper

1.Gradle 与 Android Studio 的关系

Gradle 本身和 AS 是没有关系的,为了支持 Gradle 能在 AS 上使用,Google 做了一个 AS 的插件 Android Gradle plugin,而我们能在 AS 使用 Gradle 也是因为这个插件。在项目根目录里面有个 build.gradle 文件,有如下描述

dependencies {    
    classpath 'com.android.tools.build:gradle:3.1.4'
}

这个就是依赖 gradle 插件的代码,后面的版本号表示的是 Android Gradle plugin 插件的版本,并不是 Gradle 的版本,这个是 Google 定义的,和 Gradle 官方并没有关系。了解如何 更新 Gradle 和 Android 插件

2. Android & Gradle Wrapper

Gradle Wrapper

现在默认创建一个项目,在 AS 上运行,就会默认安装 Gradle 了,但其实这个并不是真正的 Gradle,而是 Gradle Wrapper,表示 Gradle 的包装。

什么意思呢?

比如我们的 Java 环境都是要装 JDK 的吧,JDK 安装一个版本就可以了,比如 JDK-1.8,由于 Gradle 会快速迭代,经常发布新版,如果项目直接引用,那么更改版本就会很麻烦。而且每个项目可能会用到不一样的 Gradle 版本,只安装了一个版本肯定也是不行的。所以 Google 推出了 Gradle Wrapper 的概念,就是在每个项目都配置了一个指定版本的 Gradle,通过这个每个项目可以支持不同的 Gradle 版本来构建项目。

在 AS 安装的时候就自带这个功能,在 AS 的安装目录 D:\Android\Android Studio\plugins\android\lib\templates\gradle\wrapper\gradle 下有两个文件, gradle-wrapper.jar 是 Gradle Wrapper 的主体功能包。gradle-wrapper.properties 文件主要指定了该项目需要从哪里下载什么版本的 Gradle,下载后放到哪里。 每新建一个项目,就会将这两个文件 复制到项目的 gradle 文件夹下面。

├──gradle-wrapper.jar
├──gradle-wrapper.properties

Android Stuido 中的 Gradle Wrapper 相关文件,项目结构和通用是一致的

├── build.gradle
├── settings.gradle
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew
└── gradlew.bat

在创建项目之后,Gradle 会自动下载安装(第一次会比较久,之后就可以直接使用了),结束之后可以在终端输入 gradlew -v( mac 用户输入./gradlew -v) 可以查看当前项目所用的 gradle 的版本。比如我当前用的是 Gradle 6.1.1 版本的。gradlew 也就是 gradle wrapper 的缩写,wrapper 会自动去执行具体版本对应的 gradle 命令。

$ gradlew -v

------------------------------------------------------------
Gradle 6.1.1
------------------------------------------------------------

Build time:   2020-01-24 22:30:24 UTC
Revision:     a8c3750babb99d1894378073499d6716a1a1fa5d

Kotlin:       1.3.61
Groovy:       2.5.8
Ant:          Apache Ant(TM) version 1.10.7 compiled on September 1 2019
JVM:          1.8.0_181 (Oracle Corporation 25.181-b13)
OS:           Windows 10 10.0 amd64

你可能感兴趣的:(Gradle 与 Android - Gradle Wrapper)