【问题标题】:How to inherit dependency version from required BOM POM in maven spring boot project?如何从maven spring boot项目中所需的BOM POM继承依赖版本?
【发布时间】:2021-06-12 18:21:09
【问题描述】:

我是 Spring Boot 世界的新手,遇到了一个问题。我需要在我的项目中使用 mssql,我默认将其作为 spring-boot-starter-parent 的依赖项,但问题是正在继承的版本是我不想要的。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.10.RELEASE</version>
    <type>pom</type>
</dependency>

这会给我 mssql 版本 mssql-jdbc : 6.1.0.jre7(我不想要)

我的组织为所有项目中使用的所有通用组件创建了一个专用的 BOM POM,其中包括 mssql 最新版本。 mssql-jdbc :8.4.1.jre8

我已经在 dependencyManagement 标签下声明了这个 BOM POM。

<dependencyManagement>
  <dependencies> 
    <dependency>
     <grpId></grpId>
     <artifactiID></>
     <version/>
     </dependency>
   </dependencies>
</dependencyManagement>

现在我的 POM 只从 spring boot parent 获取 mssql 版本(根据树的层次结构很明显),但我想使用 BOM POM 的版本。

我也不想在我的 pom 依赖项中硬编码 mssql 版本,例如

<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>It should take from the BOM POM declared in dependency management</version>

因此,每当我的 BOM POM 中更新了新版本时,它应该直接反映在我的应用程序 POM 文件中。

我的问题可能是重复的或很容易弄清楚,但由于我是春季世界的新手,您的帮助肯定会有所帮助。

先谢谢了。

【问题讨论】:

  • 首先应该从最近的 Spring Boot 版本开始,它是 2.4.3 而不是 1.X 了(长 EoL)...其次,如果你使用 Spring Boot,你应该学会使用提供的版本by spring boot parents/BOM's ...
  • 你可以覆盖 Spring Boot 提供的任何依赖的版本。
  • @khmarbaise 你说得对,我们应该只使用最新版本,但这是公司要求使用的东西。
  • @akuma8 如何覆盖?如果我没有指定版本,那么默认情况下它使用 spring boot starter 版本。

标签: java sql-server spring spring-boot maven


【解决方案1】:

不可能。

父 POM 版本比 BOM 版本更强大。

您需要在 POM 中显式添加版本,并在 BOM 更改时手动更改。

【讨论】:

    【解决方案2】:

    要覆盖依赖项的版本,您必须找到它在父 POM 中的定义方式。以您为例,如果您查看 Spring Boot 父 POM,在 &lt;properties&gt; 部分中,您应该会看到如下内容:

    <mssql.version>Y.XX</mssql.version> <!-- please note that I am not really sure about the property name but I am 100% that the version is defined as a property-->
    

    然后将该属性复制粘贴到 POM 的 &lt;properties&gt; 部分并设置所需的版本。

    【讨论】:

      猜你喜欢
      • 2016-06-10
      • 1970-01-01
      • 2020-12-28
      • 2022-11-03
      • 2022-12-22
      • 2021-07-24
      • 2016-12-17
      • 2017-10-30
      • 2011-05-26
      相关资源
      最近更新 更多