build.gradle(项目级)添加仓库触发配置优先级报错如何解决?
报错原因
Gradle 7.0及以上版本创建的Android项目,默认在settings.gradle中开启了仓库优先规则,配置项为repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS),该规则要求所有项目依赖的仓库必须统一在settings.gradle中定义,禁止在项目级build.gradle的allprojects块中添加仓库配置。你当前在顶层build.gradle的allprojects中配置了google、jitpack仓库,触发了该规则校验,因此报错。
注:
buildscript块中的仓库是Gradle插件自身的依赖仓库,不受上述规则限制,不需要修改。
解决方案
两种方案二选一即可:
方案1(推荐):将仓库统一迁移到settings.gradle
- 打开项目根目录下的
settings.gradle文件,找到dependencyResolutionManagement配置块 - 在该块的
repositories中添加你需要的所有仓库配置,参考示例:
dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) repositories { google() mavenCentral() maven { url "https://jitpack.io" } } } rootProject.name = "LuckyMuch" include ':app'
- 删除顶层
build.gradle文件中的整个allprojects配置块,重新构建即可。
方案2(兼容旧配置):修改仓库优先级规则
如果你不想改动原有build.gradle的仓库配置,只需修改settings.gradle中的规则:
- 打开
settings.gradle,找到repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)这行配置 - 将配置值改为
RepositoriesMode.PREFER_PROJECT,或者直接删除这行配置,构建工具就会优先使用项目级build.gradle中的仓库配置,不会再触发报错。
内容的提问来源于stack exchange,提问作者Ripu Kumar
相关产品推荐
相关产品推荐

