gradle子项目依赖核心是通过project(':xxx')声明模块间依赖,需先在settings.gradle中用include注册子项目,再在各子项目build.gradle中用implementation project声明依赖关系,并避免循环依赖。

在 Gradle 中用子项目管理依赖,核心是把不同模块拆成独立的 subproject(子项目),再通过 project(':xxx') 或 implementation project(':xxx') 声明项目间依赖,而不是直接写 JAR 或版本号。
配置多项目结构
先确保目录结构清晰,例如:
myapp/
├── settings.gradle
├── build.gradle
├── common/
│ └── build.gradle
├── api/
│ └── build.gradle
└── web/
└── build.gradle
在根目录的 settings.gradle 中注册子项目:
include ':common', ':api', ':web'
这样 Gradle 才能识别它们为合法子项目。
在子项目中声明对其他子项目的依赖
比如 api 模块要用到 common 里的工具类,就在 api/build.gradle 的 dependencies 块里写:
dependencies {
implementation project(':common')
// 如果需要测试时也可见,可加 testImplementation
testImplementation project(':common')
}
Gradle 会自动构建依赖顺序,确保 common 先编译完成。
统一管理版本与公共依赖(推荐)
避免每个子项目重复写 spring-boot-starter-web 这类依赖,可在根 build.gradle 用 subprojects 或 allprojects 统一配置:
- 在根
build.gradle中添加:
subprojects {
apply plugin: 'java'
repositories {
mavenCentral()
}
dependencies {
testImplementation 'junit:junit:4.13.2'
}
}
- 若想进一步集中依赖版本,可用
ext或versions块定义变量,或使用dependencyManagement插件(Spring Boot 项目常用)。
注意常见问题
子项目依赖容易出错的地方:
-
名字必须完全匹配:
project(':common')中的名字要和settings.gradle里include的一致,大小写、冒号、路径都不能错; - 不能循环依赖:A 依赖 B,B 就不能再依赖 A,否则 Gradle 构建失败;
-
子项目默认不发布:如果要让其他外部项目引用你的子项目,需额外配置
maven-publish插件并执行publish任务; -
IDE 同步问题:改完
settings.gradle后,IntelliJ 或 VS Code 需要重新导入 Gradle 项目才能识别新子项目。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











