如何打印 Gradle 多项目构建中的所有依赖项?

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

我有一个 Gradle 多项目构建,其中包含通用定义所在的主目录以及通过

include
语句在 settings.gradle 中定义的一些项目。

构建、测试、运行一切正常,但通过任务显示依赖关系

dependencies
不起作用,它只打印:

$ g dependencies
master
:dependencies

------------------------------------------------------------
Root project
------------------------------------------------------------

No configurations

BUILD SUCCESSFUL

在主目录中执行

gradle :project1:dependencies
可以按预期工作。

如何让 Gradle 打印出整个依赖关系树,包括所有包含的项目的所有第三方库?

gradle dependency-management
4个回答
24
投票

不幸的是,你必须指定自己的任务:

allprojects {
    task printAllDependencies(type: DependencyReportTask) {}
}

然后执行:

./gradlew printAllDependencies

如果您不想查看根项目的依赖关系,请将此任务放入
subprojects
块。

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


假设您需要它来查找某种依赖关系。在这种情况下,您可以使用
dependencyInsight
任务的强大功能。

subprojects {
    task findDependency(type: DependencyInsightReportTask) {}
}

跑步之后

./gradlew findDependency --configuration compile --dependency spring-data-jpa

8
投票

下一个任务呢,我们可以创建一个自定义任务并将其应用于所有项目,并使其依赖于

dependencies
任务。这是一个例子:

allprojects { currProject ->
    task printDependencies {
        dependsOn 'dependencies'
    }
}

然后我们可以使用

./gradlew printDependencies
打印所有模块的所有依赖关系。


4
投票

我不知道有什么内置任务。您可能想要创建一个自定义任务,如下所示:

task ('showAll') {
doLast {
   allprojects.each {
       println(it.name+':')
       println('-compile:')
        configurations.compile.each {
            c ->
             println('   '+c.name)
        }
       println '-testCompile:'
       configurations.testCompile.each {
           r->
           println('   '+ r.name)
       }
    }
}
}

我的项目的输出:

:显示全部
工具:
-编译:
   groovy-all-2.4.9.jar
   commons-lang3-3.5.jar
   commons-io-2.5.jar
   commons-collections4-4.1.jar
   jsoup-1.10.2.jar
-测试编译:
   groovy-all-2.4.9.jar
   commons-lang3-3.5.jar
   commons-io-2.5.jar
   commons-collections4-4.1.jar
   jsoup-1.10.2.jar
   junit-4.11.jar
   hamcrest-core-1.3.jar
会计:
-编译:
   groovy-all-2.4.9.jar
   commons-lang3-3.5.jar
   commons-io-2.5.jar
   commons-collections4-4.1.jar
   jsoup-1.10.2.jar
-测试编译:
   groovy-all-2.4.9.jar
   commons-lang3-3.5.jar
   commons-io-2.5.jar
   commons-collections4-4.1.jar
   jsoup-1.10.2.jar
   junit-4.11.jar
   hamcrest-core-1.3.jar
杰斯:
-编译:
   groovy-all-2.4.9.jar
   commons-lang3-3.5.jar
   commons-io-2.5.jar
   commons-collections4-4.1.jar
   jsoup-1.10.2.jar
-测试编译:
   groovy-all-2.4.9.jar
   commons-lang3-3.5.jar
   commons-io-2.5.jar
   commons-collections4-4.1.jar
   jsoup-1.10.2.jar
   junit-4.11.jar
   hamcrest-core-1.3.jar
重击:
-编译:
   groovy-all-2.4.9.jar
   commons-lang3-3.5.jar
   commons-io-2.5.jar
   commons-collections4-4.1.jar
   jsoup-1.10.2.jar
-测试编译:
   groovy-all-2.4.9.jar
   commons-lang3-3.5.jar
   commons-io-2.5.jar
   commons-collections4-4.1.jar
   jsoup-1.10.2.jar
   junit-4.11.jar
   hamcrest-core-1.3.jar
CSS:
-编译:
   groovy-all-2.4.9.jar
   commons-lang3-3.5.jar
   commons-io-2.5.jar
   commons-collections4-4.1.jar
   jsoup-1.10.2.jar
-测试编译:
   groovy-all-2.4.9.jar
   commons-lang3-3.5.jar
   commons-io-2.5.jar
   commons-collections4-4.1.jar
   jsoup-1.10.2.jar
   junit-4.11.jar
   hamcrest-core-1.3.jar
FXCSS:
-编译:
   groovy-all-2.4.9.jar
   commons-lang3-3.5.jar
   commons-io-2.5.jar
   commons-collections4-4.1.jar
   jsoup-1.10.2.jar
-测试编译:
   groovy-all-2.4.9.jar
   commons-lang3-3.5.jar
   commons-io-2.5.jar
   commons-collections4-4.1.jar
   jsoup-1.10.2.jar
   junit-4.11.jar
   hamcrest-core-1.3.jar
摇篮:
-编译:
   groovy-all-2.4.9.jar
   commons-lang3-3.5.jar
   commons-io-2.5.jar
   commons-collections4-4.1.jar
   jsoup-1.10.2.jar
-测试编译:
   groovy-all-2.4.9.jar
   commons-lang3-3.5.jar
   commons-io-2.5.jar
   commons-collections4-4.1.jar
   jsoup-1.10.2.jar
   junit-4.11.jar
   hamcrest-core-1.3.jar
格罗维:
-编译:
   groovy-all-2.4.9.jar
   commons-lang3-3.5.jar
   commons-io-2.5.jar
   commons-collections4-4.1.jar
   jsoup-1.10.2.jar
-测试编译:
   groovy-all-2.4.9.jar
   commons-lang3-3.5.jar
   commons-io-2.5.jar
   commons-collections4-4.1.jar
   jsoup-1.10.2.jar
   junit-4.11.jar
   hamcrest-core-1.3.jar
HTML:
-编译:
   groovy-all-2.4.9.jar
   commons-lang3-3.5.jar
   commons-io-2.5.jar
   commons-collections4-4.1.jar
   jsoup-1.10.2.jar
-测试编译:
   groovy-all-2.4.9.jar
   commons-lang3-3.5.jar
   commons-io-2.5.jar
   commons-collections4-4.1.jar
   jsoup-1.10.2.jar
   junit-4.11.jar
   hamcrest-core-1.3.jar
爪哇:
-编译:
   groovy-all-2.4.9.jar
   commons-lang3-3.5.jar
   commons-io-2.5.jar
   commons-collections4-4.1.jar
   jsoup-1.10.2.jar
-测试编译:
   groovy-all-2.4.9.jar
   commons-lang3-3.5.jar
   commons-io-2.5.jar
   commons-collections4-4.1.jar
   jsoup-1.10.2.jar
   junit-4.11.jar
   hamcrest-core-1.3.jar
文本:
-编译:
   groovy-all-2.4.9.jar
   commons-lang3-3.5.jar
   commons-io-2.5.jar
   commons-collections4-4.1.jar
   jsoup-1.10.2.jar
-测试编译:
   groovy-all-2.4.9.jar
   commons-lang3-3.5.jar
   commons-io-2.5.jar
   commons-collections4-4.1.jar
   jsoup-1.10.2.jar
   junit-4.11.jar
   hamcrest-core-1.3.jar

0
投票

或者使用 kotlin DSL:

allprojects {
    tasks.register("printAllDependencies",DependencyReportTask::class) {}
}
© www.soinside.com 2019 - 2024. All rights reserved.