新建Gradle项目build.gradle缺失allprojects,手动添加报错如何解决?
Gradle 缺少allprojects配置块及添加后报错解决方案
问题根因
Gradle 7.0及以上版本默认废弃了根项目build.gradle中的allprojects、subprojects全局配置方式,新建项目默认使用settings.gradle中的dependencyResolutionManagement块统一管理仓库配置,所以默认不会生成allprojects块。
手动添加后报错通常由两个原因导致:
- Gradle版本过高,
settings.gradle中repositoriesMode参数配置为PREFER_SETTINGS或FAIL_ON_PROJECT_REPOS,此时项目级build.gradle中添加allprojects配置仓库会触发规则冲突 - 手动添加的
allprojects块存在语法错误,比如括号不匹配、仓库地址缺少引号、配置块嵌套错误等
解决方案
方案1:使用官方推荐配置(优先选择)
直接修改项目根目录的settings.gradle文件,在dependencyResolutionManagement块的repositories下添加需要的仓库即可,符合高版本Gradle的设计规范,不会产生冲突,示例配置:
dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() // 新增自定义仓库示例 maven { url 'https://maven.aliyun.com/repository/public' } } }
方案2:保留allprojects配置的调整方式
如果确实需要使用allprojects块做全局配置,按以下步骤操作:
- 修改
settings.gradle中的repositoriesMode参数,将repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)改为repositoriesMode.set(RepositoriesMode.PREFER_PROJECT),也可以直接删除这行配置 - 回到根目录
build.gradle中添加正确的allprojects配置,示例:
allprojects { repositories { google() mavenCentral() maven { url 'https://maven.aliyun.com/repository/public' } } }
语法校验
调整配置后仍然报错时,优先检查以下内容:
- 所有仓库地址用单引号/双引号完整包裹
- 配置块括号成对匹配,没有遗漏闭合符
allprojects块放在根build.gradle的最外层,没有嵌套在其他配置块内部
内容的提问来源于stack exchange,提问作者Noivy
相关产品推荐
相关产品推荐

