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

Gradle/Kotlin项目Ebean报错:Bean类com.xxx.domain.Customer未增强?

解决Ebean实体类未增强的Gradle Kotlin项目配置方案

这个错误我简直太熟悉了——说白了就是你的Customer实体类没经过Ebean的字节码增强处理,Ebean没法识别它是合法的实体类。在Gradle Kotlin项目里,得把增强插件的配置做对才行,我给你一步步捋:

1. 确保引入Ebean Gradle插件

在你的build.gradle.kts文件顶部,添加Ebean的Gradle插件,注意要指定和你用的Ebean核心库匹配的版本:

plugins {
    id("io.ebean") version "13.20.0" // 替换成你使用的Ebean版本
    // 其他插件,比如kotlin("jvm")、application等
}

2. 配置Ebean增强参数

在build.gradle.kts里添加Ebean的配置块,明确指定需要增强的实体类所在的包,这样插件才知道要处理哪些类:

ebean {
    // 替换成你的实体类所在的包,支持多个包用逗号分隔
    packages = listOf("com.xxx.domain")
    debugLevel = 1 // 可选,开启调试可以看到增强过程的日志,方便排查
}

3. 检查依赖一致性

确保Ebean核心库的版本和插件版本完全一致,避免版本不匹配导致的增强失败:

dependencies {
    implementation("io.ebean:ebean:13.20.0") // 和插件版本保持一致
    implementation("io.ebean:ebean-querybean:13.20.0") // 如果用了QueryBean也加上
    runtimeOnly("io.ebean:ebean-agent:13.20.0") // 运行时可能需要的代理
}

4. 验证增强是否生效

执行./gradlew clean build,然后看日志里有没有类似Enhancing com.xxx.domain.Customer的输出,如果有,说明增强成功了。如果还是没生效,试试下面的排查点:

  • 检查实体类有没有加上@Entity注解,Ebean只会增强带这个注解的类
  • 确认你的项目是JVM项目,Ebean插件目前主要支持JVM环境
  • 如果用了IntelliJ,记得刷新Gradle配置,有时候IDE不会自动同步插件变化
  • 要是用了Kotlin的kapt,确保Ebean插件和kapt的执行顺序没问题,Ebean增强应该在编译之后、打包之前执行

5. 特殊情况:使用IntelliJ运行的注意事项

如果你直接在IntelliJ里运行项目,默认可能不会触发Ebean的增强步骤。这时候需要修改运行配置:

  • 打开Run/Debug Configurations
  • 找到你的应用配置,在"Before launch"里添加一个Gradle任务,选择enhance(Ebean插件提供的任务)
  • 这样每次运行前都会先执行增强,就不会报错了

提示:如果是多模块项目,要确保Ebean插件和配置在实体类所在的模块里,而不是只在主模块配置。

内容的提问来源于stack exchange,提问作者Jean-François Côte

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:41:44