Gradle 工件依赖图命令是什么?

我在 格拉德医生上读到这样的评论:

To deal with problems due to version conflicts, reports with dependency graphs
are also very helpful. Such reports are another feature of dependency management.

我带了一个罐子过来但我得弄清楚它是从哪里来的。通常我只是在全局范围内排除它,但是我需要一些关于这里的层次结构的信息。我怎么才能从 Ivy 和 Maven 那里得到这些信息呢?

更不用说有人把 Hibernate 的 jar (很多)放到我的 jar 列表中,我真的很想知道是谁,因为我没有使用 Hibernate,并试图消除这种依赖性。

118860 次浏览

这个命令是 gradle dependencies,它的输出在 Gradle 1.2中得到了很大的改进(您现在已经可以尝试使用1.2-rc-1)

啊,因为我在我的主项目中没有依赖项,所以“ gradle 依赖项”只列出那些依赖项,而不列出子项目依赖项,所以正确的命令最终是

 gradle :<subproject>:dependencies

所以对我来说

 gradle :master:dependencies

如果希望递归包含子项目,可以自己编写:

粘贴到顶级 build.gradle:

task allDeps << {
println "All Dependencies:"
allprojects.each { p ->
println()
println " $p.name ".center( 60, '*' )
println()
p.configurations.all.findAll { !it.allDependencies.empty }.each { c ->
println " ${c.name} ".center( 60, '-' )
c.allDependencies.each { dep ->
println "$dep.group:$dep.name:$dep.version"
}
println "-" * 60
}
}
}

运行与:

gradle allDeps

如果您希望在顶级 build.gradle 中查看项目和所有子项目的依赖关系,请使用:

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

然后打电话给格拉德尔:

gradle listAllDependencies

如果您有很多配置,那么输出可能会相当长。若要仅显示运行时配置的依赖项,请运行

gradle dependencies --configuration runtime

对于那些希望调试 react-native项目中的分级依赖关系的人,命令是(从 projectname/android执行)

./gradlew app:dependencies --configuration compile
gradlew -q :app:dependencies > dependencies.txt

将所有依赖项写入文件 depencies.txt

在最近的格拉德尔版本(即。5 +) ,如果您使用 --scan标志运行您的构建,它会告诉您各种有用的信息,包括依赖关系,在浏览器中您可以点击。

gradlew --scan clean build

它可以分析出那个建筑里发生了什么,非常简洁。

  1. 列出所有依赖项: gradle yourmodule:dependencies > dep.txt
  2. 如果您需要列出项目中出现特定问题依赖项的位置/根目录: gradle -q dependencyInsight --dependency commons-io --configuration runtimeClasspath,其中 commons-io是您的依赖项。