You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Gradle子项目依赖的Project对象列表?

获取子项目依赖的Project对象列表

在Gradle中,subproject.dependencies返回的DependencyHandler包含多种类型的依赖(项目依赖、外部库依赖等),要提取其中的Project对象,你需要筛选出项目依赖(ProjectDependency类型),再通过其属性获取对应项目:

Groovy DSL 实现

// 获取所有配置下的项目依赖对应的Project对象
def projectDependencies = subproject.dependencies.allDependencies.findAll { dep ->
    dep instanceof ProjectDependency
}.collect { dep ->
    dep.dependencyProject
}

// 仅获取implementation配置下的项目依赖
def implementationProjectDeps = subproject.configurations.implementation.dependencies.findAll {
    it instanceof ProjectDependency
}.collect { it.dependencyProject }

Kotlin DSL 实现

// 获取所有配置下的项目依赖对应的Project对象
val projectDependencies = subproject.dependencies.allDependencies
    .filterIsInstance<ProjectDependency>()
    .map { it.dependencyProject }

// 仅获取implementation配置下的项目依赖
val implementationProjectDeps = subproject.configurations.implementation.dependencies
    .filterIsInstance<ProjectDependency>()
    .map { it.dependencyProject }

说明:

  • allDependencies会遍历DependencyHandler中所有配置的依赖;如果只关注特定配置(如api、testImplementation),直接替换为对应配置的dependencies集合即可。
  • ProjectDependency是Gradle中专门表示项目依赖的类型,其dependencyProject属性就是你需要的目标Project对象。

内容的提问来源于stack exchange,提问作者Alexey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 05:48:20