iT邦幫忙

2023 iThome 鐵人賽

DAY 15
0
Mobile Development

[Android] 怎麼蓋地基?論 build.gradle 與它的快樂夥伴們系列 第 15

[Day 15] 使用 IDE 來修改 Android Gradle 外掛程式/插件版本

  • 分享至 

  • xImage
  •  

Day 13 有提到

  • id 'com.android.application'
  • id 'com.android.library'
  • id 'org.jetbrains.kotlin.android'
    這 3 個東西是我們的 Android Gradle 外掛程式/插件(plugins)。

build.gradle(Project:專案名稱)

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...
https://ithelp.ithome.com.tw/upload/images/20230929/20151956240GQFq1T7.png

https://ithelp.ithome.com.tw/upload/images/20230929/20151956AEcyoqzXrH.png

在 Project 的選項,你可以看到

  • Android Gradle Plugin Version 7.0.4
  • Gradle Version 7.5

這時可以發現它們之間的對應關係。

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


上一篇
[Day 14] repositories 與 dependencies 之間的關係 - 續
下一篇
[Day 16] Android Gradle Plugin Version 與 Gradle Version
系列文
[Android] 怎麼蓋地基?論 build.gradle 與它的快樂夥伴們30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言