2
我想要在gradle任务中获取所有依赖关系(包括可传递依赖关系)的信息。如何获取gradle任务中传递依赖的信息?
我试过代码:
class MyGradlePlugin implements Plugin<Project> {
void apply(Project project) {
project.afterEvaluate {
println " Project:" + project.name
project.configurations.each { conf ->
println " Configuration: ${conf.name}"
conf.allDependencies.each { dep ->
println " ${dep.group}:${dep.name}:${dep.version}"
}
}
}
}
}
但只打印申报的,没有传递的。
这意味着,如果我的dependencies
是:
dependencies {
compile "com.google.guava:guava:18.0"
compile 'org.codehaus.groovy:groovy-all:2.3.11'
testCompile 'junit:junit:4.11'
}
它只打印这3依赖性,但org.hamcrest:hamcrest-core:1.3
这是不显示的junit:junit:4.11
的传递依赖。
如何修改代码以让其显示org.hamcrest:hamcrest-core:1.3
?
PS:我知道gradle dependencies
任务会显示我想要的一切,但我需要手动获取依赖关系信息并以我自己的格式打印它。
您需要解决的依赖关系,例如'project.configurations.detachedConfiguration(deps依赖[])。resolvedConfiguration'。有关示例,请参阅[gradle-versions-plugin](https://github.com/ben-manes/gradle-versions-plugin)。 –