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

erd*_*dos 22 shell gradle gradlew build.gradle gradle-plugin

我可以使用 查询 Gradle 项目的依赖关系树./gradlew -q dependencies

service我还可以使用运行子项目的查询./gradlew service:dependencies

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

先感谢您。

Chr*_*iki 42

我相信 Gradle 中没有内置方法来实现此目的(无需调整构建配置)\xe2\x80\x99,除非您手动列出dependencies所有子项目的任务,如下所示:

\n
./gradlew sub1:dependencies sub2:dependencies sub1:subsub:dependencies\n
Run Code Online (Sandbox Code Playgroud)\n

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

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

然后只需调用gradle-all-deps从根项目目录调用即可。

\n


Vij*_*mar 26

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

subprojects {
    task allDeps(type: DependencyReportTask) {}
}
Run Code Online (Sandbox Code Playgroud)

并从根项目执行以下命令

./gradlew allDeps 
Run Code Online (Sandbox Code Playgroud)

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

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

  • @kaluva 公平地说,问题确实指定了**不修改 build.gradle 文件** (2认同)