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

現(xiàn)在默認創(chuàng)建一個項目,在 AS 上運行,就會默認安裝 Gradle 了,但其實這個并不是真正的 Gradle,而是 Gradle Wrapper,表示 Gradle 的包裝。

什么意思呢?

比如我們的 Java 環(huán)境都是要裝 JDK 的吧,JDK 安裝一個版本就可以了,比如 JDK-1.8,由于 Gradle 會快速迭代,經(jīng)常發(fā)布新版,如果項目直接引用,那么更改版本就會很麻煩。而且每個項目可能會用到不一樣的 Gradle 版本,只安裝了一個版本肯定也是不行的。所以 Google 推出了 Gradle Wrapper 的概念,就是在每個項目都配置了一個指定版本的 Gradle,通過這個每個項目可以支持不同的 Gradle 版本來構(gòu)建項目。

在 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 相關文件,項目結(jié)構(gòu)和通用是一致的

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

在創(chuàng)建項目之后,Gradle 會自動下載安裝(第一次會比較久,之后就可以直接使用了),結(jié)束之后可以在終端輸入 gradlew -v( mac 用戶輸入./gradlew -v) 可以查看當前項目所用的 gradle 的版本。比如我當前用的是 Gradle 6.1.1 版本的。gradlew 也就是 gradle wrapper 的縮寫,wrapper 會自動去執(zhí)行具體版本對應的 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
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容