我有一个 Gradle 多项目构建,其中包含通用定义所在的主目录以及通过
include
语句在 settings.gradle 中定义的一些项目。
构建、测试、运行一切正常,但通过任务显示依赖关系
dependencies
不起作用,它只打印:
$ g dependencies
master
:dependencies
------------------------------------------------------------
Root project
------------------------------------------------------------
No configurations
BUILD SUCCESSFUL
在主目录中执行
gradle :project1:dependencies
可以按预期工作。
如何让 Gradle 打印出整个依赖关系树,包括所有包含的项目的所有第三方库?
不幸的是,你必须指定自己的任务:
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
下一个任务呢,我们可以创建一个自定义任务并将其应用于所有项目,并使其依赖于
dependencies
任务。这是一个例子:
allprojects { currProject ->
task printDependencies {
dependsOn 'dependencies'
}
}
然后我们可以使用
./gradlew printDependencies
打印所有模块的所有依赖关系。
我不知道有什么内置任务。您可能想要创建一个自定义任务,如下所示:
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
或者使用 kotlin DSL:
allprojects {
tasks.register("printAllDependencies",DependencyReportTask::class) {}
}