繁体   English   中英

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

[英]How to inherit dependency version from required BOM POM in maven spring boot project?

我是 spring 引导世界的新手,遇到了问题。 我需要在我的项目中使用 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 引导父级获取 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 世界的新手,您的帮助肯定会有所帮助。

谢谢是提前。

不可能。

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

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

要覆盖依赖项的版本,您必须找到它在父 POM 中的定义方式。 在你的例子中,如果你查看 Spring Boot parent POM,在<properties>部分,你应该看到如下内容:

<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 的<properties>部分并设置所需的版本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM