问题与处理策略
问题描述
- Android 项目中,
settings.gradle
文件中,有如下配置,Gradle 插件或依赖下载速度慢
pluginManagement {
repositories {
gradlePluginPortal()
google()
mavenCentral()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
}
}
处理策略
- 在
settings.gradle
文件中,为 pluginManagement 与 dependencyResolutionManagement 配置块添加国内镜像源,例如,阿里云镜像
pluginManagement {
repositories {
maven { url 'https://maven.aliyun.com/repository/public' }
gradlePluginPortal()
google()
mavenCentral()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
maven { url 'https://maven.aliyun.com/repository/public' }
google()
mavenCentral()
}
}
学习补充
1、pluginManagement
pluginManagement {
repositories {
gradlePluginPortal()
google()
mavenCentral()
}
}
- pluginManagement 配置块用于定义项目中插件的来源
gradlePluginPortal()
:Gradle 官方提供的插件仓库
google()
:Google 的 Maven 仓库
mavenCentral()
:Maven 中央仓库
2、dependencyResolutionManagement
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
}
}
- dependencyResolutionManagement 配置块用于定义项目中依赖的来源
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
:用于控制 Gradle 如何处理项目中定义的仓库,RepositoriesMode.FAIL_ON_PROJECT_REPOS
表示如果子模块中定义了自己的仓库,Gradle 会报错并拒绝使用这些仓库,即所有依赖都必须从根项目定义的仓库中下载
google()
:Google 的 Maven 仓库
mavenCentral()
:Maven 中央仓库