是否可以通过导入的BOM覆盖默认管理的依赖项的范围而不覆盖版本?

时间:2019-02-08 21:35:29

标签: java spring maven spring-boot

我不确定这是bug还是功能,但是我试图在dependencyManagement部分中仅覆盖在导入的BOM中管理的依赖项的范围,而不是版本。如果这样做,该版本是未知的,但是我不确定这是否是有目的的,或者我的设置有问题。

1 个答案:

答案 0 :(得分:1)

Maven文档指出,这是dependency scope的意图:

  

依赖项范围用于限制依赖项的可传递性,   并影响用于各种构建任务的类路径。

所以,是的-应该可以覆盖范围。但是,重载到底如何影响类路径,取决于初始作用域值及其最终值。

此外,如果您要覆盖BOM表中的依赖项范围,则需要在<dependencies>中而不是在<dependencyManagement>部分中进行。

<dependencyManagement>用于定义依赖项版本,因此本节中唯一合适的范围是import用于BOM。但是,范围providedprovided specified in <dependencyManagement> will override defined scope in <dependencies> section除外。