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

cen*_*tic 9 dependency-management gradle

我有一个 Gradle 多项目构建,其中包含一个主目录,其中公共定义位于其中,一些项目通过include语句在 settings.gradle 中定义。

构建、测试、运行一切正常,但通过任务显示依赖项dependencies不起作用,它只打印:

$ g dependencies
master
:dependencies

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

No configurations

BUILD SUCCESSFUL
Run Code Online (Sandbox Code Playgroud)

这样做gradle :project1:dependencies的主目录按预期工作。

我怎样才能让 Gradle 打印出整个依赖树,包括包含的所有项目的所有第三方库?

Max*_*Max 8

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

allprojects {
    task printAllDependencies(type: DependencyReportTask) {}
}
Run Code Online (Sandbox Code Playgroud)

之后,执行:./gradlew printAllDependencies
如果您不想查看根项目的依赖项,请将此任务放入subprojects块中。

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


假设您需要它来查找某个依赖项。在这种情况下,您可以使用dependencyInsight任务的力量。

subprojects {
    task findDependency(type: DependencyInsightReportTask) {}
}
Run Code Online (Sandbox Code Playgroud)

在那之后运行

./gradlew findDependency --configuration compile --dependency spring-data-jpa
Run Code Online (Sandbox Code Playgroud)


小智 7

接下来的任务呢,我们可以在其中创建自定义任务并将其应用于所有项目并使其依赖于dependencies任务。下面是一个例子:

allprojects { currProject ->
    task printDependencies {
        dependsOn 'dependencies'
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我们可以使用./gradlew printDependencies打印所有模块的所有依赖项。


Ale*_*xiy 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)
       }
    }
}
}
Run Code Online (Sandbox Code Playgroud)

我的项目的输出:

:显示所有
工具:
-编译:
   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