Day 11 引用了一篇 stackoverflow 的討論來介紹實作時,開發者對儲存庫(repositories)的宣告常會發生混淆的情事。
接著我們從 Gradle 文件出發,來看看如何宣告儲存庫。
[圖1:使用簡易方式來宣告儲存庫]
儲存庫提供應用程式構建者來下載、使用開源依賴項(dependencies)。
Maven Central 和 Google Android 儲存庫是常見的儲存庫。
宣告方式如下:
repositories {
mavenCentral()
google()
}
如果想查詢其他的簡易宣告儲存庫方式,可參考RepositoryHandler中列舉的方法。
大多數企業專案都會設定僅在內部網路使用的儲存庫。開發團隊藉由內部儲存庫來設定使用者管理和安全措施、確保正確的運作時間和可用性。透過 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