gpt4 book ai didi

spring - 隐式导入的Maven BOM文件在Gradle中占主导地位吗?

转载 作者:行者123 更新时间:2023-12-03 05:07:20 24 4
gpt4 key购买 nike

我开发了一个Spring Boot 2.0.x应用程序,该应用程序使用Gradle 5.2.1导入了多个Maven BOM表,包括自定义和正式的Spring BOM表。因此,我使用Gradle提供的platform语法。但是,我也将dependency-management插件与Spring Boot Gradle插件结合使用。

apply plugin: 'io.spring.dependency-management'
apply plugin: 'org.springframework.boot'

dependencies {
compile platform("org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}")
compile platform("com.myOrg:custom-bom:${latestVersion}")
}

根据 docs的介绍,这些插件组合触发了Spring Boot BOM文件的包含。但是,我不知道此隐式包含的BOM如何适合BOM的常规顺序。是首先应用它,然后可以被其他BOM覆盖,还是最后应用,从而主导了所有其他BOM文件?

最佳答案

在仅使用BOM表的platform的Gradle世界中,没有优先级规则。 Gradle将考虑由不同BOM和可传递依赖项带来的所有约束,如果他们建议使用不同版本,则将以通常的方式通过冲突解决它们。

我不是Spring dependency-management插件的专家,但我的理解是,它的目的是复制Maven BOM契约(Contract):BOM的版本会覆盖所有可传递版本,并且可以被本地版本声明所覆盖。

如果理解正确,那么dependency-management插件将对其导入的BOM所涵盖的所有依赖项应用其规则。插件未涵盖的所有内容均应遵守Gradle规则。

从这个意义上讲,这种组合可能不是理想的情况,因为在任一方向上,BOM内容在版本上的变化都可能严重影响已解决的依赖性。

关于spring - 隐式导入的Maven BOM文件在Gradle中占主导地位吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55277189/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com