gradle - 收集 Gradle 项目的依赖约束

标签 gradle dependencies constraints

我正在寻找一种方法来从自定义 Gradle 插件收集给定项目的所有依赖约束(通过常规 platform 和/或 enforcedPlatform 和/或“手动”强制执行)。
在 Maven 世界中,您可以解析一个“工件描述符”,该描述符将允许访问对工件强制执行的所有托管依赖项的有效列表。到目前为止,我无法找到如何在 Gradle 中收集此类信息。
有什么建议吗?谢谢!

最佳答案

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

allprojects {
    afterEvaluate {
        configurations.findAll {it.canBeResolved==true}.each { println it + "\n" ; it.allDependencies.each { println it } }
    }
}

问题(在我看来)是在多模块项目中跨模块共享测试代码
简短的回答 - 否 - 跨模块有直接的测试依赖共享。
通过build设置在模块内部共享测试代码
官方毕业路线 https://docs.gradle.org/current/userguide/java_testing.html#sec:java_test_fixtures
简单破解 testImplementation files(project(':core-module').sourceSets.test.output.classesDirs)在您需要的地方单独添加上面的行,或者在具有适当条件的 subprojects() 的根目录中添加
*还有其他可能的路线*
例如:通过 configuration child.testImplementation extends parent.testImplementation (或运行时)

关于gradle - 收集 Gradle 项目的依赖约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63819077/

相关文章:

sql - 如何创建表约束以防止跨两列出现重复值?

java - 在Android Studio(2.1.3)中进行调试时找不到本地变量

ios - 如何执行激活编程约束

android - Gradle 同步失败 : com. android.builder.model.AndroidProject.getProjectType()I

c# - TextBlock 附加属性绑定(bind)

python - 依赖项不适用于我的应用程序

java - 你应该遮蔽你的依赖关系吗?

ios - 更改后我的框架高度没有更新

java - 如何在 jar 中包含 Groovy 扩展方法?

Java jar 文件无法识别从 gradle 添加的外部库