2015-09-09 25 views
5

Próbuję użyć Play Gradle Plugin, aby skompilować/spakować aplikację Play 2.3.x, która używa Ebean.Używanie PlayFramework + Ebean z Gradle

Wszystko działa prawidłowo podczas kompilacji i pakowania, ale po uruchomieniu aplikacji pojawia się dobrze znany błąd

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

Więc jak mogę zrobić Gradle uruchomić wzmacniacz podczas kompilacji?

Odpowiedz

5

Tak właśnie to zrobiłem. Używam gry 2.4, ale powinienem być w stanie pracować dla ciebie.

Pierwszy dodać konfigurację w build.gradle następująco -

configurations { 
    enhance 
} 

Następny dodać zależność od czynnika ebeanorm jak pokazano poniżej:

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

Sprawdź, czy masz wymagane zależności grać w swojej build.gradle, jak pokazano poniżej:

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

Na końcu dodaj następujące elementy, aby ulepszyć nt po kompilacji wykonała zadanie:

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, próbowałem rozwiązanie, a kiedy nie skompilować i przeniósł się, dopiero później znaleźć Jedynym problemem był dbmodels/* oczekiwany przebieg podczas gdy mój ścieżka była inna.

Początkowo wydawało się magią i mylące żargonie temat ulepszeń, dodaje pomógł mi zrozumieć, co się dzieje: https://openjpa.apache.org/builds/1.2.3/apache-openjpa/docs/ref_guide_pc_enhance.html Zasadniczo wzmocniony jest dodanie kilku metod i właściwości do pracy z wytrwałością.