【发布时间】:2015-01-08 13:12:00
【问题描述】:
为了简化依赖关系和 pom.xml 文件,我更新了一个 Spring MVC 应用程序以使用 Spring IO 平台材料清单。
但是我有两个问题:
-
覆盖 BOM 中定义的特定版本的依赖关系:Spring IO 平台将 jetty 版本设置为 8.x,但是我们依赖于 jetty 9.x。根据文档,覆盖特定依赖项应该像在 pom.xml 文件中添加同名属性一样简单(即
<jetty.version>9.x</jetty.version>)。但是,这不起作用。我必须将具有正确版本的依赖项显式添加到 pom.xml 文件的dependencyManamgenent部分。 -
在应用程序的 pom.xml 中使用 BOM 中的属性:AFAIK Spring IO 平台 BOM 使用属性(即
com.fasterxml.jackson)指定依赖版本。但是,我们想使用未在 BOM 中定义的com.fasterxml.jackson.dataformat.smile。所以我们在应用的 pom.xml(dependencied和dependencyManagement)中添加了特定的依赖。是否可以在 pom.xml 中重复使用jackson版本属性?目前我们必须添加相应版本的属性(即<com.fasterxml.jackson.dataformat.smile>),当我们更新spring io平台版本时,我们必须确保也更新这个属性。
【问题讨论】:
-
您是使用 bom 作为 pom 的父级,还是将其导入 pom 的
<dependencyManagement>部分? -
我用
<dependencyManagement>导入了它。我有一个由 3 个模块组成的多模块 maven 项目:app-client (GWT)、app-shared (DTO) 和 app-server (spring mvc、backend 等)。它们都有一个定义公共依赖的父 pom。