You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot父依赖版本未自动引入:hibernate-core编译缺版本报错

问题原因与解决方案

核心问题

你在主POM的dependencyManagement节点中手动添加了org.hibernate:hibernate-core的依赖声明,但未指定版本。这会覆盖Spring Boot父POM中已预定义的该依赖版本配置——Maven解析依赖时,会优先使用你显式加入dependencyManagement的条目,而这个条目缺少版本信息,因此编译报错。

解决方案

有两种可行的处理方式:

方式1:移除主POM中多余的dependencyManagement声明

Spring Boot父POM已经在自身的dependencyManagement中维护了hibernate-core的版本,你无需重复声明。直接删除主POM里这段代码:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
<!--    <version>${hibernate.version}</version> -->
</dependency>

删除后,子POM中直接引入hibernate-core依赖时,会自动继承Spring Boot父POM提供的版本。

方式2:保留dependencyManagement声明并指定版本

如果需要在主POM的dependencyManagement中统一管理该依赖,直接引用Spring Boot父POM定义的hibernate.version属性即可,无需手动写死版本号:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>${hibernate.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>

补充说明

Baeldung的说法是正确的:Spring Boot Starter Parent确实会帮你自动管理大部分常用依赖的版本,但这个机制的前提是你没有在自己的项目POM中用相同的groupId/artifactId覆盖dependencyManagement中的配置。一旦你手动添加了同依赖的dependencyManagement条目,Maven就会优先使用你的配置,若配置缺少版本则会报错。

内容的提问来源于stack exchange,提问作者gokul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 05:15:15