Day 13 有提到
id 'com.android.application'
id 'com.android.library'
id 'org.jetbrains.kotlin.android'
build.gradle(Project:專案名稱) 檔案
buildscript {
...
}
plugins {
id 'com.android.application' version '7.0.4' apply false
id 'com.android.library' version '7.0.4' apply false
id 'org.jetbrains.kotlin.android' version '1.8.0' apply false
}
task clean(type: Delete) {
delete rootProject.buildDir
}
其實 Android Studio IDE 也有提供修改 Android Gradle 外掛程式/插件的介面。
路徑:File / Project Structure...
在 Project 的選項,你可以看到
這時可以發現它們之間的對應關係。
Android Gradle Plugin Version 7.0.4
會跟 build.gradle(Project:專案名稱) 檔案 plugins {}
區塊內的id 'com.android.application' version '7.0.4' apply false
id 'com.android.library' version '7.0.4' apply false
版本號碼一致。
Gradle Version 7.5
會跟 gradle-wrapper.properties(Gradle Version) 檔案distributionUrl
所指定的 Gradle 來源檔案 gradle-7.5-bin.zip
版本號碼一致。
gradle-wrapper.properties(Gradle Version) 檔案
#Fri Sep 08 10:20:08 CST 2023
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
這個對應關係可能只是個開發中的皮毛觀察。
但在處理構建過程錯誤時是一個很有用的起點。
看到這裡我又要來提出大哉問。
斯斯有兩種就算了,
為什麼 Android Gradle Plugin Version 和 Gradle Version 會分開宣告版本號呢?
都有 Gradle、Version 的重複字彙,這兩個到底有什麼不同?
官方文件說:
Android Studio 建構系統以 Gradle 為基礎,Android Gradle 外掛程式則加入了建構 Android 應用程式專用的功能。
我們再從 stackoverflow 來看網友們的換句話說,幫助理解它們之間的不同。
Gradle is the build system.
You can use it with a lot of plugins. One of these is the Android Gradle plugin.
It is used to provide processes and configurable settings that are specific to building and testing Android applications.
Android Gradle Plugin Version
構建 Android 應用程式 (application) 的外掛程式/插件。用於指定構建、測試 Android 應用程式 的流程,和配置設定。
Gradle Version
是 Android Studio 建構系統。你可以把 Gradle 搭配許多外掛程式/插件 (plugins) 一起使用。Android Gradle Plugin 是其中一個插件。
資料來源
Google for Developers - Android Gradle 外掛程式版本資訊
stackoverflow - difference between android gradle plugin and gradle