“Bean类com.xxx.domain.Customer没有增强?” gradle / kotlin app

时间:2018-04-11 14:38:07

标签: gradle orm kotlin ebean

我正在尝试使用Gradle在Kotlin应用程序中使用Ebean。

我在GitHub上有很多例子,我很确定我的代码没问题,但我一直收到这个错误:

Caused by: java.lang.IllegalStateException: Bean class com.xxx.domain.Customer is not enhanced?
 at io.ebeaninternal.server.deploy.BeanDescriptorManager.setEntityBeanClass(BeanDescriptorManager.java:1413)
 at io.ebeaninternal.server.deploy.BeanDescriptorManager.createByteCode(BeanDescriptorManager.java:1285)
 at io.ebeaninternal.server.deploy.BeanDescriptorManager.readDeployAssociations(BeanDescriptorManager.java:1207)
 at io.ebeaninternal.server.deploy.BeanDescriptorManager.readEntityDeploymentAssociations(BeanDescriptorManager.java:710)
 at io.ebeaninternal.server.deploy.BeanDescriptorManager.deploy(BeanDescriptorManager.java:325)
 at io.ebeaninternal.server.core.InternalConfiguration.<init>(InternalConfiguration.java:141)
 at io.ebeaninternal.server.core.DefaultContainer.createServer(DefaultContainer.java:130)
 at io.ebeaninternal.server.core.DefaultContainer.createServer(DefaultContainer.java:79)
 at io.ebeaninternal.server.core.DefaultContainer.createServer(DefaultContainer.java:44)
 at io.ebean.EbeanServerFactory.create(EbeanServerFactory.java:55)
 at io.ebean.Ebean$ServerManager.getWithCreate(Ebean.java:201)
 at io.ebean.Ebean$ServerManager.<init>(Ebean.java:159)
 ... 6 more

这是我的build.gradle代码:

buildscript {
    ext.kotlin_version = '1.2.31'


    repositories {
        mavenCentral()
    }


    dependencies {
        classpath "io.ebean:ebean-gradle-plugin:10.2.2"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}


apply plugin: 'kotlin'
apply plugin: 'kotlin-kapt'
apply plugin: 'application'
apply plugin: 'ebean'


mainClassName = 'com.xxx.HelloWorldKt'


defaultTasks 'run'


repositories {
    mavenCentral()
}


dependencies {
    kapt "io.ebean:kotlin-querybean-generator:10.1.2"

    compile group: 'mysql', name: 'mysql-connector-java', version: '6.0.6'
    compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"

    compile "io.ebean:ebean:10.3.1"
    compile "io.ebean:ebean-querybean:10.3.1"

    testCompile 'junit:junit:4.11'
    testCompile "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version"
}


kapt {
    generateStubs = true
}


sourceSets {
    main.kotlin.srcDirs += [file("$buildDir/generated/source/kaptKotlin/main")]
}

我在IntelliJ中安装了2个插件。

  • Ebean 10.x增强功能
  • Ebean增强

两者都被激活。

这是我的Bean代码

import io.ebean.Model
import javax.persistence.Entity
import javax.persistence.Id

@Entity
class Customer : Model() {

    @Id
    var id: Long = 0

    var name: String = ""

    var version: Long = 0
}

我尝试使用“应用配置”和“Gradle配置”运行应用。两者都做同样的错误。

我可以看到QCustomer生成的代码在那里,但我一直都在接收这个错误。

我做错了什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

要检查此问题有4件事:

1)由于我使用相同的代码完成了多次测试,我的“build”文件夹中充满了以前生成的代码,“Rebuild”功能没有清理它。我做了删除自己+完全“重建”,它删除了很多错误信息。但缺少其他东西。

2)确保“resource”文件夹中的文件“ebean.mf”具有正确的“entity-packages”和“transactional-packages”。就我而言,它是com.xxx.domain。这是需要增强功能并包含模型的文件夹。

3)如果您正在使用“应用程序”配置设置(使用IDE启动应用程序),请确保安装并激活正确的Ebean Enhancement插件。就我而言,我只需要Ebean 10.x Enhancement插件。

4)如果您使用“gradle”配置设置,请确保sourceSets设置如下:

sourceSets {
    main.kotlin.srcDirs += [file("$buildDir/generated/source/kaptKotlin/main")]
}

希望有所帮助。我花了很多时间在这上面。