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)。 –