Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从maven spring boot项目中所需的BOM POM继承依赖项版本?_Java_Sql Server_Spring_Spring Boot_Maven - Fatal编程技术网

Java 如何从maven spring boot项目中所需的BOM POM继承依赖项版本?

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>

我刚接触spring boot world,遇到了一个问题。我有一个在我的项目中使用mssql的要求,我默认从spring boot starter父级获取mssql作为依赖项,但问题是继承的版本是我不想要的

<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版本。