繁体   English   中英

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

[英]Gradle 6: get the list of implementation dependencies programmatically

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

group "com.example"

dependencies {
    implementation project(':project:project-base')
}

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

我希望是这样的:

configurations.compile.dark.magick.moreMagicDependencies()

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

谢谢!

我认为你可以像下面的代码一样使用resolvedConfiguration 请注意,“实现”无法直接解决(尝试..)。

但是你可以使用例如。 compileClasspath (如果它适合你的情况); 还有一些其他配置可以扩展“实现”(请参阅Java Library plugin.. 中的图表)。

调用下面的代码,如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]
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM