讲师中心 微信公众号
AI工具推荐 视频效率加速

Gradle多模块项目的settings文件怎么写

夏静小哥_8369

夏静小哥_8369

发布时间:2026-11-05 12:37:05

|

427人浏览过

|

来源于php中文网

原创

settings.gradle(或.kts)是Gradle构建的总开关,必须显式include所有模块(如include ':app'),路径用冒号分隔;需分离配置pluginManagement和dependencyResolutionManagement,否则插件或依赖无法解析。

gradle多模块项目的settings文件怎么写

settings.gradle(或 settings.gradle.kts)必须显式声明所有参与构建的模块,否则 Gradle 根本“看不见”它们——哪怕目录存在、build.gradle 写得再完整也没用。

include 语句怎么写才不报错

模块路径必须用冒号 : 分隔,不能用斜杠 / 或反斜杠 \;路径是逻辑路径,和物理目录结构可以不一致(但默认一致)。

  • include ':app' → 对应根目录下的 app/ 文件夹
  • include ':feature:login' → 对应 feature/login/ 目录(注意不是 feature:login 文件夹)
  • include ':core:data', ':core:network' → 一次性 include 多个,用逗号分隔
  • 如果模块在非标准位置(比如平级的 ../shared-lib),得配合 project(':shared').projectDir = file('../shared-lib')

常见错误:把 include 'app'(漏掉冒号)或 include './app'(用了点路径)当合法写法,结果同步失败,日志里只报“Project with path ‘:app’ could not be found”。

pluginManagement 和 dependencyResolutionManagement 必须分开配

Gradle 7.0+ 强制要求插件仓库(pluginManagement)和普通依赖仓库(dependencyResolutionManagement)分离配置。混写或只配一个,会导致插件找不到(如 com.android.application)或依赖解析失败(如 androidx.core:core-ktx)。

  • pluginManagement 只管插件本身从哪下载,必须包含 mavenCentral()、gradlePluginPortal() 等;Android Studio 自带的 AGP 插件也走这里
  • dependencyResolutionManagement 管所有 implementation、api 类依赖,可额外加私有 Nexus、Maven Local、Google Maven 等
  • 两个块都必须出现在 settings.gradle 顶层,且不能嵌套在 rootProject 或其他作用域里

典型坑:只在 build.gradle 里写了 mavenCentral(),但 settings.gradle 没配 dependencyResolutionManagement,结果 CI 上跑不通——因为 Gradle 8.0+ 默认禁用项目级仓库(FAIL_ON_PROJECT_REPOS 错误)。

Version Catalog(libs.versions.toml)怎么接入 settings

要让 Version Catalog 生效,必须在 dependencyResolutionManagement 块里显式启用,并指向 TOML 文件路径。

  • 先确保 gradle/libs.versions.toml 存在且格式正确(键名全小写+下划线,如 [versions.junit])
  • 在 settings.gradle.kts 中写:versionCatalogs { create("libs") { from(files("../gradle/libs.versions.toml")) } }
  • 注意路径是相对于 settings.gradle 所在目录的;如果文件在根目录下,就用 file("gradle/libs.versions.toml")
  • Groovy 版需用 versionCatalogs { create("libs") { from(file("gradle/libs.versions.toml")) } }

没配这一步,libs.versions.xxx 在任何 build.gradle 里都会报 unresolved reference,IDE 也不提示补全。

includeBuild 和动态条件 include 容易被忽略的细节

includeBuild 用于复合构建(比如本地调试一个还没发版的 SDK),而条件性 include 常用于环境隔离(如只在 CI 加入测试模块),这两者都依赖 settings.gradle 的执行时机。

  • includeBuild('../my-internal-sdk') 路径必须是相对路径,且目标目录下必须有合法的 settings.gradle;否则报 “No build found”
  • 条件 include 不要用 if (System.getenv("CI") == "true") { include ':ci-only' } —— Gradle 初始化阶段不保证环境变量稳定,推荐用 providers.systemProperty("ci").getOrElse("false") == "true"
  • includeBuild 里的插件版本会覆盖主工程的 pluginManagement 配置,容易引发版本冲突,建议在 pluginManagement 里统一约束

最隐蔽的问题:includeBuild 后,IDE 可能无法识别子构建中的模块依赖,需要手动触发 “Reload project” 或清缓存;而条件 include 如果判断逻辑出错,会导致某些模块彻底消失在 Project 视图里,连编译错误都看不到。

热门AI工具

更多
Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

码上飞
码上飞 Hot

一款基于自然语言的AI应用开发平台,可根据用户描述自动生成应用程序,帮助个人和团队快速完成应用原型与开发。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

花生AI
花生AI Hot

一款AI视频创作工具,主要用于B站推出的AI视频创作工具,适合需要提升相关任务效率的用户。

相关专题

更多
Java Maven/Gradle 构建与依赖管理合集
Java Maven/Gradle 构建与依赖管理合集

系统讲解 Java 项目构建工具的使用与进阶配置,涵盖 Maven 的 POM 文件结构、生命周期(clean/compile/package/install/deploy)与插件机制、依赖范围(compile/provided/test/runtime)与传递依赖管理、多模块聚合与继承、私有 Nexus 仓库发布,以及 Gradle 的 Groovy / Kotlin DSL 语法、Task 自定义与增量构建、依赖版本目录(Versi

389

2026.05.09

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

0

2026.11.05

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

0

2026.11.05

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

0

2026.11.04

XORM框架结构体映射与表结构同步
XORM框架结构体映射与表结构同步

本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。

0

2026.11.04

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

0

2026.11.04

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

0

2026.11.04

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

0

2026.11.04

XORM框架零基础入门教程
XORM框架零基础入门教程

本专题梳理XORM框架的入门路径,从框架定位、依赖安装、连接数据库到跑通第一个增删改查示例,讲清Engine初始化、日志开启与项目目录规划,并对比GORM等同类ORM的差异,帮助Go开发者建立整体认知。

0

2026.11.04

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Gradle 9 主版本升级指南
Gradle 9 主版本升级指南

共0课时 | 0人学习

Gradle 安全最佳实践
Gradle 安全最佳实践

共0课时 | 0人学习

Gradle 依赖校验手册
Gradle 依赖校验手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn