管理遠端存放區

如果依附元件不是本機程式庫或檔案樹狀結構 Gradle 會依據 「dependencyResolutionManagement { repositories {...} }」區塊 settings.gradle 檔案。每個存放區的清單順序會決定 Gradle 針對每項專案依附元件搜尋存放區的順序。 例如,如果存放區 A 和 B 中都有依附元件,而您 先列出 A,Gradle 會從存放區 A 下載依附元件

根據預設,新的 Android Studio 專案會指定 Google 的 Maven 存放區,並將 Maven 中央存放區指定為專案的 settings.gradle 檔案中的存放區位置,如下所示:

Kotlin


dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
    }
}

Groovy


dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
    }
}

如有需要的本機存放區,請使用 mavenLocal()

Kotlin


dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        mavenLocal()
    }
}

Groovy


dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        mavenLocal()
    }
}

或依照下列方式宣告特定的 Maven 或 Ivy 存放區:

Kotlin


dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        maven(url = "https://repo.example.com/maven2")
        maven(url = "file://local/repo/")
        ivy(url = "https://repo.example.com/ivy")
    }
}

Groovy


dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        maven {
            url 'https://repo.example.com/maven2'
        }
        maven {
            url 'file://local/repo/'
        }
        ivy {
            url 'https://repo.example.com/ivy'
        }
    }
}

詳情請參閱「Gradle 存放區指南」。

Google 的 Maven 存放區

您可以從 Google 的 Maven 存放區取得最新版的 Android 程式庫:

您可以在 Google 的 Maven 存放區索引找到所有可用的構件,詳情請參閱下方的「程式輔助存取機制」一節。

如要在您的建構中新增其中一個程式庫,請在頂層 build.gradle.kts 檔案中加入 Google 的 Maven 存放區:

Kotlin


dependencyResolutionManagement {

    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()

        // If you're using a version of Gradle lower than 4.1, you must instead use:
        // maven {
        //     url = "https://maven.google.com"
        // }
        // An alternative URL is "https://dl.google.com/dl/android/maven2/".
    }
}

Groovy


dependencyResolutionManagement {

    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()

        // If you're using a version of Gradle lower than 4.1, you must instead use:
        // maven {
        //     url 'https://maven.google.com'
        // }
        // An alternative URL is 'https://dl.google.com/dl/android/maven2/'.
    }
}

然後將所需程式庫新增至模組的 dependencies 區塊中。例如,appcompat 程式庫看起來會像這樣:

Kotlin


dependencies {
    implementation("com.android.support:appcompat-v7:28.0.0")
}

Groovy


dependencies {
    implementation 'androidx.appcompat:appcompat:1.6.1'
}

然而,假使您使用的是舊版程式庫,且依附元件無效,Maven 存放區就不會提供該程式庫,您必須從離線存放區取得程式庫。

程式輔助存取機制

如要透過程式輔助存取 Google Maven 構件,您可以從 maven.google.com/master-index.xml 取得 XML 構件群組清單。然後,您可以在任何群組中檢視下列程式庫名稱和版本:

maven.google.com/group_path/group-index.xml

舉例來說,android.arch.lifecycle 群組中的程式庫會列在 maven.google.com/android/arch/lifecycle/group-index.xml

您也可以透過下列方式下載 POM 和 JAR 檔案:

maven.google.com/group_path/library/version /library-versionext

例如:maven.google.com/android/arch/lifecycle/compiler/1.0.0/compiler-1。0.0.pom

來自 SDK Manager 的離線存放區

假使程式庫不適用於 Google Maven 存放區 (通常是較舊的程式庫版本),就必須從 SDK Manager 下載離線的 Google 存放區套件。

然後照常將這些程式庫加入 dependencies 區塊。

離線程式庫會儲存在 android_sdk/extras/ 中。