【问题标题】:Spring IO Platform Bill-Of-Materials custom versionSpring IO Platform Bill-Of-Materials 定制版
【发布时间】:2015-01-08 13:12:00
【问题描述】:

为了简化依赖关系和 pom.xml 文件,我更新了一个 Spring MVC 应用程序以使用 Spring IO 平台材料清单。

但是我有两个问题:

  1. 覆盖 BOM 中定义的特定版本的依赖关系:Spring IO 平台将 jetty 版本设置为 8.x,但是我们依赖于 jetty 9.x。根据文档,覆盖特定依赖项应该像在 pom.xml 文件中添加同名属性一样简单(即<jetty.version>9.x</jetty.version>)。但是,这不起作用。我必须将具有正确版本的依赖项显式添加到 pom.xml 文件的 dependencyManamgenent 部分。
  2. 在应用程序的 pom.xml 中使用 BOM 中的属性:AFAIK Spring IO 平台 BOM 使用属性(即com.fasterxml.jackson)指定依赖版本。但是,我们想使用未在 BOM 中定义的 com.fasterxml.jackson.dataformat.smile。所以我们在应用的 pom.xml(dependencieddependencyManagement)中添加了特定的依赖。是否可以在 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。

标签: spring maven-3 spring-io


【解决方案1】:

您在 Maven 中遇到了限制。仅当您的 pom 通过其父级直接或间接继承 bom 时,才能重用来自 bom 的属性。

也许您可以使用 Platform bom 作为您当前定义公共依赖项的 pom 的父级。

【讨论】:

    猜你喜欢
    • 2016-11-24
    • 2018-05-24
    • 2015-12-20
    • 1970-01-01
    • 2017-08-18
    • 2022-01-12
    • 2022-01-03
    • 2022-01-16
    • 1970-01-01
    相关资源
    最近更新 更多