iT邦幫忙

2023 iThome 鐵人賽

DAY 12
0

Day 11 引用了一篇 stackoverflow 的討論來介紹實作時,開發者對儲存庫(repositories)的宣告常會發生混淆的情事。

接著我們從 Gradle 文件出發,來看看如何宣告儲存庫

https://ithelp.ithome.com.tw/upload/images/20230926/20151956mq4DrsUEJl.png
[圖1:使用簡易方式來宣告儲存庫]

儲存庫提供應用程式構建者來下載、使用開源依賴項(dependencies)。

使用簡易方式宣告儲存庫

Maven Central 和 Google Android 儲存庫是常見的儲存庫。

宣告方式如下:

repositories {
    mavenCentral()
    google()
}

如果想查詢其他的簡易宣告儲存庫方式,可參考RepositoryHandler中列舉的方法。
https://ithelp.ithome.com.tw/upload/images/20230926/201519560atXZDKV5q.png

使用 URL 來宣告自訂的儲存庫。

大多數企業專案都會設定僅在內部網路使用的儲存庫。開發團隊藉由內部儲存庫來設定使用者管理和安全措施、確保正確的運作時間和可用性。透過 RepositoryHandler 的列舉方法,可將自訂 URL 儲存庫指定為 Maven 或 Ivy 儲存庫。

宣告多個儲存庫

可藉由宣告多個儲存庫來引入依賴項(dependencies)。如果依賴項只存在特定的儲存庫,宣告多個儲存庫是一個有用的方式。

範例如下。可以看到用 maven {} 來宣告僅供特定依賴項使用的 Maven 儲存庫。

repositories {
        google()
        mavenCentral()
        // APNG file for animation
        maven { url "https://jitpack.io/" }
        // 'io.github.youth5201314:banner:2.2.2' 依賴項 使用
        maven { url "https://s01.oss.sonatype.org/content/groups/public" }
        // 'com.github.barteksc:android-pdf-viewer:3.2.0-beta.1' 依賴項 使用
        maven { url "https://jcenter.bintray.com" }
    }

儲存庫的宣告順序,決定 Gradle 執行時如何檢查依賴項。如果 Gradle 在特定儲存庫中找到模組描述式(module descriptor),它將嘗試從相同的儲存庫中下載該模組的所有產物(artifacts)

資料來源
Gradle - Declaring repositories


上一篇
[Day 11] 分散四處的 repositories 區塊
下一篇
[Day 13] repositories 與 dependencies 之間的關係
系列文
[Android] 怎麼蓋地基?論 build.gradle 與它的快樂夥伴們30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言