Gradle 6:以编程方式获取实现依赖项列表



我有一个 java 项目的build.gradle文件,如下所示:

group "com.example"
dependencies {
implementation project(':project:project-base')
}

如何以编程方式获取实现依赖项列表?

我期望像这样的东西:

configurations.compile.dark.magick.moreMagicDependencies()

返回一组依赖项进行筛选,但我可能缺少一些重要的东西。

谢谢!

我认为你可以像下面的代码一样使用resolvedConfiguration。请注意,"实现"不能直接解决(try..(。

但是您可以使用例如。compileClasspath(如果适合您的情况(;还有一些其他配置可以扩展"实现"(参见Java库插件中的图表(。

gradle :mymodule:dumpDependencies一样调用下面的代码

apply plugin: 'java-library'
dependencies {
implementation 'org.springframework:spring-web:5.2.1.RELEASE'
}
task dumpDependencies {
doLast {
def resolved = configurations.compileClasspath.resolvedConfiguration
println "files=$resolved.files"
resolved.resolvedArtifacts.each {
artifact-> println "artifact=$artifact"
}
}
}

编辑另请注意,compile已被弃用,如果您使用implementation ..,那么compile依赖项将为空(当然,您可以使用gradle :module1:dependencies进行检查(。

为了扩展Daniele的答案,这完全返回了我正在寻找的内容:

configurations.compileClasspath.incoming.dependencies.findAll {
it.group && it.name && it.getProperties().get("dependencyProject")
}.collect {
[group: it.group, name: it.name]
}

最新更新