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

Dea*_*ler 120 gradle

我在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.
Run Code Online (Sandbox Code Playgroud)

我带了一些罐子,但我需要弄清楚它来自哪里.通常我会全局排除它,但我需要一些关于层次结构的信息.我如何从Ivy和Maven获得这些信息?

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

Pet*_*ser 124

该命令是gradle dependencies,在Gradle 1.2中它的输出得到了很大改进.(你今天已经可以尝试1.2-rc-1了.)

  • 这不适用于所有类型的项目.我得到'没有配置',需要运行其他东西来实现这一目标.希望有一天gradle将处理这个,所以实际命令将是可预测的. (9认同)
  • 是否有包含传递依赖的标志? (2认同)

Dea*_*ler 118

啊,既然我的主项目中没有依赖项,"gradle依赖项"只列出那些而不是子项目依赖项,所以正确的命令最终成为

 gradle :<subproject>:dependencies
Run Code Online (Sandbox Code Playgroud)

对我来说这是

 gradle :master:dependencies
Run Code Online (Sandbox Code Playgroud)

  • 很好,如果你可以说`-r`为递归 (19认同)

use*_*414 37

如果要查看项目的依赖项,并且在顶级build.gradle中使用所有子项目:

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

然后打电话给gradle:

gradle listAllDependencies
Run Code Online (Sandbox Code Playgroud)

  • 您可以将它添加到`〜/ .gradle/init.gradle`中,而不是将其添加到每个构建中.然后它适用于您机器上的所有项目,但仅适用于您. (8认同)
  • 博客文章中有关该方法的更多详细信息:https://solidsoft.wordpress.com/2014/11/13/gradle-tricks-display-dependencies-for-all-subprojects-in-multi-project-build/ (2认同)

icy*_*sor 24

如果你有很多配置,输出可能会很长.要仅显示运行时配置的依赖项,请运行

gradle dependencies --configuration runtime
Run Code Online (Sandbox Code Playgroud)


Ren*_*ato 14

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

粘贴到顶级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
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

运行:

gradle allDeps
Run Code Online (Sandbox Code Playgroud)


abi*_*ode 6

gradlew -q :app:dependencies > dependencies.txt
Run Code Online (Sandbox Code Playgroud)

将所有依赖写入文件dependencies.txt