使用Spring boot时的两个Hibernate版本
我在build.gradle文件中明确指定了最新的Hibernate版本。在运行构建后,我发现依赖项库列表中显示了两个不同版本的Hibernate jar文件。SpringBoot推出了一个更低的版本,甚至我想使用5.4.2.Final。我应该使用Spring boot引入的版本,还是有办法用更新的版本覆盖它 我做了一些研究,但没有找到我想要的答案。请参阅:您可以将使用Spring boot时的两个Hibernate版本,hibernate,spring-boot,gradle,dependency-management,Hibernate,Spring Boot,Gradle,Dependency Management,我在build.gradle文件中明确指定了最新的Hibernate版本。在运行构建后,我发现依赖项库列表中显示了两个不同版本的Hibernate jar文件。SpringBoot推出了一个更低的版本,甚至我想使用5.4.2.Final。我应该使用Spring boot引入的版本,还是有办法用更新的版本覆盖它 我做了一些研究,但没有找到我想要的答案。请参阅:您可以将hibernate库从Springboot可传递依赖项中排除,以便强制Gradle使用您的版本。 首先,您需要分析哪个Springb
hibernate
库从Springboot可传递依赖项中排除,以便强制Gradle使用您的版本。
首先,您需要分析哪个Springboot依赖关系依赖于hibernate core
(通常是“org.springframework.boot:spring boot starter data jpa”
):为此,您可以使用gradle依赖关系
任务浏览依赖关系图
然后,您可以排除特定的可传递依赖项,如文档中所述:
dependencies{
implementation ("org.springframework.boot:spring-boot-starter-data-jpa") {
exclude group: "org.hibernate", module: "hibernate-core"
}
implementation "org.hibernate:hibernate-core:5.4.2.Final"
...
}
请注意升级hibernate核心
版本可能会对Spring Jpa相关库的行为产生副作用(请确保您使用的Springboot版本与此新版本的hibernate
兼容)
编辑:还有其他方法可以定义可传递依赖项约束,请参考官方文档(例如:)您是否更新了hibernate.version属性?您的问题有道理。我在一个父项目下有多个项目,我没有在一个子项目中指定hibernate。因此,hibernate版本隐式地取自Spring boot。当然,主要问题通过下面列出的答案解决了。