我可以使用
./gradlew -q dependencies
查询 Gradle 项目的依赖关系树。
我还可以使用
service
运行对 ./gradlew service:dependencies
子项目的查询。
如何从命令行自动列出所有子项目的依赖项而不修改build.gradle文件?
提前谢谢您。
我相信 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
即可。
在根项目的 build.gradle 文件中添加以下任务
subprojects {
task allDeps(type: DependencyReportTask) {}
}
并从根项目执行以下命令
./gradlew allDeps
这将列出所有子项目的依赖关系。
此外,如果您想根据类型(compileClasspath、testRuntime ...)缩小依赖关系图的范围,请参考this