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

Hibernate 6.1.0 Gradle插件hibernateEnhance无法解析compileOnly依赖

Hibernate Gradle插件6.x版本hibernateEnhance任务报错修复

问题背景

将项目使用的Hibernate Gradle插件从5.6.9.Final升级至6.1.0.Final时,配置调整如下:

5.6.9.Final版本配置

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'org.hibernate:hibernate-gradle-plugin:5.6.9.Final'
    }
}

apply plugin: 'org.hibernate.orm'

repositories {
    mavenCentral()
}

hibernate {
    enhance {
        enableLazyInitialization = true
        enableDirtyTracking = true
    }
}

6.1.0.Final版本配置

plugins {
    id 'org.hibernate.orm' version '6.1.0.Final'
}

repositories {
    mavenCentral()
}

hibernate {
    enhancement {
        lazyInitialization = true
        dirtyTracking = true
    }
}

升级后插件新增3个内置Gradle任务:

  • compileJpaMetamodel
  • generateJpaMetamodel
  • hibernateEnhance

问题现象

项目中引入compileOnly类型依赖时,hibernateEnhance任务会执行失败,哪怕将依赖声明从compileOnly调整为implementation配置,问题仍然无法解决。触发问题的依赖配置示例如下:

dependencies {
    compileOnly 'javax.servlet:javax.servlet-api:4.0.1'
}

修复方案

问题根因是6.1.0.Final版本的Hibernate Gradle插件中,hibernateEnhance任务默认没有关联项目的编译类路径,执行字节码增强时无法扫描到编译期引入的依赖,触发类找不到错误。
在build.gradle中添加如下配置,手动给增强任务指定编译类路径即可解决:

hibernateEnhance {
    classpath = configurations.compileClasspath
}

多模块项目可将该配置放在根项目的subprojects配置块中,对所有子模块统一生效,无需逐模块重复添加。配置完成后重新执行构建,任务即可正常运行。


内容的提问来源于stack exchange,提问作者stefan-dan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 12:39:15