收集Gradle项目';s依赖约束

收集Gradle项目';s依赖约束,gradle,dependencies,constraints,Gradle,Dependencies,Constraints,我正在寻找一种方法,从自定义Gradle插件收集给定项目的所有依赖性约束(通过常规平台和/或强制执行平台和/或“手动”强制执行) 在Maven world中,您可以解析一个“工件描述符”,该描述符将允许访问工件上强制执行的所有托管依赖项的有效列表。到目前为止,我还不知道这种信息是如何在格拉德尔收集到的 有什么建议吗?谢谢 根据问题的澄清-以下是一个开始(需要更多工作-出于某些原因,我的本地显示默认配置-而不是编译/运行时) 问题(在我看来)是在多模块项目中跨模块共享测试代码 简短回答-否-模块

我正在寻找一种方法,从自定义Gradle插件收集给定项目的所有依赖性约束(通过常规
平台
和/或
强制执行平台
和/或“手动”强制执行)

在Maven world中,您可以解析一个“工件描述符”,该描述符将允许访问工件上强制执行的所有托管依赖项的有效列表。到目前为止,我还不知道这种信息是如何在格拉德尔收集到的


有什么建议吗?谢谢

根据问题的澄清-以下是一个开始(需要更多工作-出于某些原因,我的本地显示默认配置-而不是编译/运行时)


问题(在我看来)是在多模块项目中跨模块共享测试代码

简短回答-否-模块之间存在直接的测试依赖项共享

通过构建设置在模块内部共享测试代码

官方梯度路线

简单黑客

测试实现文件(项目(“:核心模块”).sourceset.test.output.classesDirs) 在需要的地方单独添加上述行,或者在根目录中添加具有适当条件的subprojects()

*还有其他可能的路线*
例如:via configuration child.testImplementation扩展了parent.testImplementation(或runtime)

谢谢@PrasadU,但问题并不在于此。换句话说,我希望为项目配置所有平台和EnforcedPlatform(如果有的话)的有效集合。例如,如果一个项目包含
实施强制平台(“组:名称:版本”)
,我想收集该平台强制执行的所有依赖约束。再次感谢@PrasadU。IIUC,它将收集所有可解析配置中的所有依赖项。我要做的是收集所有enforcedPlatform依赖项,然后简单地阅读它们的内容。在这种情况下,我实际上对实际的项目依赖性不感兴趣。如果我们认为强制平台是一个BOM表,那么我需要BOM表的内容。更具体地说,我需要一组有效的依赖项约束(托管DEP),这些约束来自在给定项目上实施的所有BOM。
allprojects {
    afterEvaluate {
        configurations.findAll {it.canBeResolved==true}.each { println it + "\n" ; it.allDependencies.each { println it } }
    }
}