管理远程仓库

如果您的依赖项不是本地库或文件树,Gradle 会在 `settings.gradle` 文件的 `dependencyResolutionManagement { repositories {...} }` 块中指定的任何在线仓库中查找文件。列出每个仓库的顺序决定了 Gradle 搜索每个项目依赖项的仓库的顺序。例如,如果依赖项同时可从仓库 A 和 B 获取,而您首先列出 A,则 Gradle 会从仓库 A 下载依赖项。

默认情况下,新的 Android Studio 项目在项目的 `settings.gradle` 文件中指定 Google 的 Maven 仓库Maven 中心仓库 作为仓库位置,如下所示

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 仓库

以下 Android 库的最新版本可从 Google 的 Maven 仓库获取

您可以在 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.7.0'
}

但是,如果您尝试使用上述库的较旧版本并且您的依赖项失败,则该版本在 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-version.ext

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

SDK 管理器中的离线仓库

对于 Google Maven 仓库中不可用的库(通常是较旧的库版本),您必须从 SDK 管理器 下载离线的 Google 仓库 软件包。

然后,您可以照常将这些库添加到您的 `dependencies` 块中。

离线库保存在 ` android_sdk/extras/` 中。