我有一个 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]
}