Java 如何从maven spring boot项目中所需的BOM POM继承依赖项版本?
我刚接触spring boot world,遇到了一个问题。我有一个在我的项目中使用mssql的要求,我默认从spring boot starter父级获取mssql作为依赖项,但问题是继承的版本是我不想要的Java 如何从maven spring boot项目中所需的BOM POM继承依赖项版本?,java,sql-server,spring,spring-boot,maven,Java,Sql Server,Spring,Spring Boot,Maven,我刚接触spring boot world,遇到了一个问题。我有一个在我的项目中使用mssql的要求,我默认从spring boot starter父级获取mssql作为依赖项,但问题是继承的版本是我不想要的 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.10.RELEASE</version>
<type>pom</type>
</dependency>
org.springframework.boot
spring启动程序父级
1.5.10.1发布
聚甲醛
这将为我提供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>
com.microsoft.sqlserver
mssql jdbc
它应该取自依赖关系管理中声明的BOM POM
因此,每当在我的BOM POM中更新新版本时,它都应该直接反映在我的应用程序POM文件中
我的问题可能是重复的,也可能很容易理解,但由于我对spring世界还不熟悉,您的帮助肯定会有所帮助
谢谢是预付款。不可能
父POM版本比BOM版本更强大
您需要在POM中显式添加版本,并在BOM更改时手动更改它。要覆盖依赖项的版本,您必须找到它是如何在父POM中定义的。例如,在您的案例中,如果您查看Spring Boot父POM,在
部分,您应该会看到如下内容:
<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-->
Y.XX
然后在POM的
部分复制粘贴该属性并设置所需的版本。首先应该从最新的Spring Boot版本开始,该版本是2.4.3,不再是1.X(长EoL)。。。第二,如果您使用spring boot,您应该学会使用spring boot父母/BOM提供的版本。您可以覆盖spring boot提供的任何依赖项的版本。@khmarbaise您是正确的,我们应该只使用最新版本,但这是公司授权使用的。@akuma8如何覆盖?如果我没有指定版本,那么默认情况下使用SpringBootStarter版本。