列出所有子项目的 Gradle 依赖项

问题描述 投票:0回答:2

我可以使用

./gradlew -q dependencies
查询 Gradle 项目的依赖关系树。

我还可以使用

service
运行对
./gradlew service:dependencies
子项目的查询。

如何从命令行自动列出所有子项目的依赖项而不修改build.gradle文件

提前谢谢您。

shell gradle build.gradle gradle-plugin gradlew
2个回答
37
投票

我相信 Gradle 中没有内置方法可以实现此目的(无需调整构建配置) - 除非您手动列出所有子项目的

dependencies
任务,如下所示:

./gradlew sub1:dependencies sub2:dependencies sub1:subsub:dependencies

但是,如果您经常需要此功能,那么您可以为其创建一个 shell 别名。 bash 中的示例(例如,将其放入您的

~/.bashrc
文件中):

alias gradle-all-deps='./gradlew dependencies $(./gradlew -q projects \
    | grep -Fe ---\ Project \
    | sed -Ee "s/^.+--- Project '"'([^']+)'/\1:dependencies/"'")'

然后只需从项目根目录调用

gradle-all-deps
即可。


20
投票

在根项目的 build.gradle 文件中添加以下任务

subprojects {
    task allDeps(type: DependencyReportTask) {}
}

并从根项目执行以下命令

./gradlew allDeps 

这将列出所有子项目的依赖关系。

此外,如果您想根据类型(compileClasspath、testRuntime ...)缩小依赖关系图的范围,请参考this

© www.soinside.com 2019 - 2024. All rights reserved.