从 Spring 依赖管理获取 Hibernate 版本以在 Gradle 中配置插件

Posted

技术标签:

【中文标题】从 Spring 依赖管理获取 Hibernate 版本以在 Gradle 中配置插件【英文标题】:Getting Hibernate version from Spring dependency management to configure plug-in in Gradle 【发布时间】:2021-05-18 08:36:38 【问题描述】:

是否可以获取Spring Boot's dependency management 管理的Hibernate 版本来配置该版本的插件?

我想将Hibernate plug-in 配置为与Hibernate Core 相同的版本,而不必每次都手动更新此版本。

buildscript 
    dependencies 
        classpath "org.hibernate:hibernate-gradle-plugin:$hibernate.version"
                                                           ^^^^^^^^^^^^^^^^^
                                                           unknown!
    

apply plugin: 'org.hibernate.orm'

但我得到的唯一信息是此错误消息:

无法为 org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler 类型的对象获取未知属性“休眠”。

有没有办法从 Spring 配置中获取 Hibernate 版本?

【问题讨论】:

【参考方案1】:

大胆回答:不可能

因为buildscript块被提前评估并且这里的所有依赖都必须首先解决,它们不能依赖于dependencyManagement块评估的未来结果。

即使Dependency Management Plugin 提供a nice way 以获得休眠版本

dependencyManagement.importedProperties['hibernate.version']

【讨论】:

以上是关于从 Spring 依赖管理获取 Hibernate 版本以在 Gradle 中配置插件的主要内容,如果未能解决你的问题,请参考以下文章

spring中 实体类在啥时候交给spring容器管理?

Eclipse下面的Maven管理的SSH框架整合(Struts,Spring,Hibernate)

Spring JPA,Hibernate 仅从其他实体获取 PK 或 Id

引点科技私房菜专栏之Spring集成Struts和Hibernate

引点科技私房菜专栏之Spring集成Struts和Hibernate

Spring JPA,Hibernate仅从其他实体获取PK或Ids