为了简化依赖项和pom.xml文件,我更新了一个Spring MVC应用程序以使用Spring IO平台Bill-of-Materials。
但是我有两个问题:
-
覆盖 BOM 中定义的特定版本的 depdenity:Spring IO 平台将 jetty 版本设置为 8.x,但我们依赖于 jetty 9.x。根据文档,覆盖特定的依赖项应该像将同名的属性添加到pom.xml文件中一样简单(即
<jetty.version>9.x</jetty.version>
)。但是,这不起作用。我必须将具有正确版本的依赖项显式添加到 pom.xml 文件的dependencyManamgenent
部分。 -
使用应用程序 pom 中的 BOM 中的属性.xml:AFAIK Spring IO 平台 BOM 使用属性(即
com.fasterxml.jackson
)。但是,我们希望使用BOM中未定义的com.fasterxml.jackson.dataformat.smile
。因此,我们将特定的依赖项添加到应用程序的pom中.xml(dependencied
和dependencyManagement
)。是否可以在 pom 中重用jackson
版本属性.xml ?目前我们必须添加属性(即<com.fasterxml.jackson.dataformat.smile>
) 与相应的版本,当我们更新 Spring IO 平台版本时,我们必须确保也更新此属性。
你在 Maven 中遇到了一个限制。仅当 POM 通过其父级直接或间接继承 BOM 表时,重用 BOM 表中的属性才有效。
也许您可以使用平台 bom 作为您当前定义常见依赖项的 pom 的父级。