Gradle添加allprojects配置时报Google仓库被build.gradle添加错误如何解决
问题根因
该报错是Gradle 7.0及以上版本的默认规则限制导致的:Gradle新版本默认开启了「设置文件仓库优先」的规则,要求所有项目级依赖的仓库统一在settings.gradle中声明,禁止在build.gradle的allprojects/subprojects块中额外添加仓库。
解决方案
方案1(官方推荐):迁移仓库配置到settings.gradle
- 打开项目根目录下的
settings.gradle文件,找到dependencyResolutionManagement配置块 - 将
build.gradle中allprojects.repositories下的所有仓库配置移动到dependencyResolutionManagement.repositories中,修改后的示例如下:
dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { // 迁移过来的仓库配置 google() mavenCentral() maven { url 'https://jitpack.io' } } }
- 删除根
build.gradle文件中的整个allprojects配置块即可。
注:buildscript块下的repositories是构建脚本自身的依赖仓库,不受该规则限制,不需要移动,直接保留即可
方案2(兼容旧项目):修改仓库优先级规则
如果不想调整原有配置结构,可以直接修改settings.gradle中的仓库模式配置,关闭项目级仓库添加限制:
- 打开
settings.gradle,将dependencyResolutionManagement下的repositoriesMode值修改为RepositoriesMode.PREFER_PROJECT:
dependencyResolutionManagement { // 修改为优先使用项目级配置的仓库 repositoriesMode.set(RepositoriesMode.PREFER_PROJECT) repositories { // 此处原有配置可以保留或删除,冲突时会优先使用项目build.gradle中的配置 } }
修改后build.gradle中的allprojects仓库配置即可正常生效。
内容的提问来源于stack exchange,提问作者Tanveer Hasan
相关产品推荐
相关产品推荐

