当您的依赖项不是本地库或文件树时,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 存储库获取
- AndroidX 库
- 架构组件库
- ConstraintLayout 库
- AndroidX 测试
- 数据绑定库
- Android 即时应用库
- Wear OS
- Google Play 服务
- Google Play 结算库
- Firebase
您可以在 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/
中。