2015-09-09 10 views
5

Ich versuche, die Play Gradle Plugin zu verwenden, um eine Play 2.3.x App zu kompilieren/zu packen, die Ebean verwendet.Verwenden von PlayFramework + Ebean mit Gradle

Alles funktioniert während der Kompilierung und Verpackung, gut, aber wenn ich die app laufen bekomme ich das gut bekannten Fehler

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

So wie kann ich kann Gradle den Enhancer während der Kompilierung laufen zu lassen?

Antwort

5

So habe ich es gemacht. Ich verwende Play 2.4, sollte aber in der Lage sein, für Sie zu arbeiten.

zunächst eine Konfiguration in Ihrem build.gradle wie folgt hinzufügen -

configurations { 
    enhance 
} 

nächstes eine Abhängigkeit von ebeanorm Mittel hinzufügen, wie unten dargestellt:

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

Stellen Sie sicher, Sie die erforderlichen Spiel Abhängigkeiten in Ihrem build.gradle wie unten dargestellt:

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

Schließlich fügen die im Anschluss an die enhanceme zu tun nt nach der Kompilierung Task ausgeführt:

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 hatte ich die Lösung versucht, und wenn es nicht kompiliert habe ich ging weiter, erst später das einzige Problem zu finden war die dbmodels/* erwarteten Pfad, während mein Pfad war anders.

Zunächst was wie Magie und verwirrenden Jargon über Verbesserungen schien, folgendes hat mir geholfen, zu verstehen, was los ist: https://openjpa.apache.org/builds/1.2.3/apache-openjpa/docs/ref_guide_pc_enhance.html wesentlichen Verbesserung einige weitere Methoden und Eigenschaften mit persistance arbeiten erweitert.

Verwandte Themen