2015-09-09 20 views
5

私はPlay Gradle Pluginを使って、Ebeanを使用するPlay 2.3.xアプリをコンパイル/パッケージ化しようとしています。PlayFramework + Ebean with Gradleを使用

すべてが、コンパイルとパッケージの間に正常に動作しますが、私は、私はよく知られてエラー

Entity type class SomeEntity is not an enhanced entity bean. 
Subclassing is not longer supported in Ebean 

を取得するアプリを実行したときに、どのように私は、Gradleのは、コンパイル時にエンハンサーを実行することができますができますか?

答えて

5

これは私がそれをした方法です。私は演劇2.4を使用していますが、あなたのために働くことができるはずです。

次のように最初にあなたのbuild.gradleに設定を追加 -

configurations { 
    enhance 
} 

を以下に示すように次はebeanormエージェントへの依存を追加します。

dependencies { 
    enhance group: 'org.avaje.ebeanorm', name: 'avaje-ebeanorm-agent', version: '4.5.3' 
} 

を、あなたの中に必要な遊びの依存関係を持っていることを確認以下に示すようにbuild.gradle:

dependencies { 
    play 'org.avaje:avaje-agentloader:2.1.2' 
    play "org.avaje.ebeanorm:avaje-ebeanorm-agent:4.5.3" 
} 

最後に、 NTコンパイルタスクが実行された後:

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') 

        } 
       } 
      } 
     } 
    } 
0

@koolrich、私は解決策を試していたし、それは私が上に移動コンパイルしなかったとき、それ以降でのみ問題のみを検索しながら、dbmodels/*期待パスだった私パスは異なっていた。

最初は魔法と機能強化に関する紛らわしい専門用語のように思えたものを、次のように私は何が起こっているかを理解する助け: はhttps://openjpa.apache.org/builds/1.2.3/apache-openjpa/docs/ref_guide_pc_enhance.html 基本的に、強化は持続性で動作するようにいくつかのより多くのメソッドとプロパティを追加しています。