使用PlayFramework + Ebean和Gradle

Sal*_*lem 5 gradle playframework ebean

我正在尝试使用Play Gradle插件来编译/打包使用Ebean的Play 2.3.x应用程序.

在编译和打包过程中一切正常,但是当我运行应用程序时,我得到了众所周知的错误

Entity type class SomeEntity is not an enhanced entity bean. 
Subclassing is not longer supported in Ebean
Run Code Online (Sandbox Code Playgroud)

那么如何在编译期间让Gradle运行增强器呢?

koo*_*ich 5

这就是我做到的.我正在使用2.4,但应该可以为你工作.

首先在build.gradle中添加配置,如下所示 -

configurations {
    enhance
}
Run Code Online (Sandbox Code Playgroud)

接下来添加对ebeanorm代理的依赖,如下所示:

dependencies {
    enhance group: 'org.avaje.ebeanorm', name: 'avaje-ebeanorm-agent', version: '4.5.3'
}
Run Code Online (Sandbox Code Playgroud)

确保您在build.gradle中具有所需的播放依赖关系,如下所示:

dependencies {
    play 'org.avaje:avaje-agentloader:2.1.2'
    play "org.avaje.ebeanorm:avaje-ebeanorm-agent:4.5.3"
}
Run Code Online (Sandbox Code Playgroud)

最后添加以下内容以在执行编译任务后执行增强:

model {
    components {
        play {
            binaries.all{binary ->
                tasks.withType(PlatformScalaCompile) {
                    doLast {
                        ant.taskdef(name: 'ebean', classname: 'com.avaje.ebean.enhance.ant.AntEnhanceTask', classpath: project.configurations.enhance.asPath)
                        ant.ebean(classSource: "${project.buildDir}/playBinary/classes", packages: 'models.package.name', transformArgs: 'debug=1')

                    }
                }
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)