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