【发布时间】: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