2012-08-16 14 views

Antwort

7

EBeans jetzt sein eigenes Maven Plugin hat, aber ich kann jede Dokumentation online nicht finden, so ist hier ein Beispiel dafür, wie es zu benutzen:

<plugin> 
    <groupId>org.avaje.ebeanorm</groupId> 
    <artifactId>avaje-ebeanorm-mavenenhancer</artifactId> 
    <version>${ebean.version}</version> 
    <executions> 
     <execution> 
      <id>main</id> 
      <phase>process-classes</phase> 
      <goals> 
       <goal>enhance</goal> 
      </goals> 
      <configuration> 
       <packages>com.package1.**,com.package2.**</packages> 
       <transformArgs>debug=1</transformArgs> 
       <classSource>${project.build.outputDirectory}</classSource> 
       <classDestination>${project.build.outputDirectory}</classDestination> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

mit Eclipse

Wenn Sie Verwendung von Eclipse, wollen Sie sicherstellen, dass es läuft das Plugin bei Bedarf wie folgt aus:

<build> 
    <plugins> 
     <!-- plugins here --> 
    </plugins> 
    <pluginManagement> 
     <plugins> 
      <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself. --> 
      <plugin> 
       <groupId>org.eclipse.m2e</groupId> 
       <artifactId>lifecycle-mapping</artifactId> 
       <version>1.0.0</version> 
       <configuration> 
        <lifecycleMappingMetadata> 
         <pluginExecutions> 
          <pluginExecution> 
           <pluginExecutionFilter> 
            <groupId>org.avaje.ebeanorm</groupId> 
            <artifactId>avaje-ebeanorm-mavenenhancer</artifactId> 
            <versionRange>[3.3.2,)</versionRange> 
            <goals> 
             <goal>enhance</goal> 
            </goals> 
           </pluginExecutionFilter> 
           <action> 
            <execute> 
             <runOnConfiguration>true</runOnConfiguration> 
             <runOnIncremental>true</runOnIncremental> 
            </execute> 
           </action> 
          </pluginExecution> 
         </pluginExecutions> 
        </lifecycleMappingMetadata> 
       </configuration> 
      </plugin> 
     </plugins> 
    </pluginManagement> 
</build> 
+0

funktioniert für mich .. Aber ich musste Ausführungen in die Konfiguration bringen. – joshua

+1

Wenn ich m2e in Eclipse verwende, funktioniert die Kompilation, und es läuft. Aber m2e beschwert sich "Plugin-Ausführung nicht durch Lifecycle-Konfiguration abgedeckt: org.avaje.eebeanorm: avaje-ebeanorm-mavenenhance." Weiß jemand, wie man das repariert? – area5one

+0

@ area5one - lustig, dass Sie gefragt haben, habe ich nur die Antwort mit genau aktualisiert, was Sie brauchen. – JBCP

2

OBSOLETE ANTWORT

Diese Antwort für eine sehr alte Version von EBeans ist, fügen Sie es ignorieren.

Original-Content

Das Beispiel auf der Avaje Seite hat einige Fehler.

  1. Der Tag ist falsch: 'Prozess-ebean-Erweiterung' ist kein Maven-Lebenszyklus, so das Plugin in der Beispielkonfiguration wird nicht Lauf richtig. Die richtige Phase sind "Prozessklassen".
  2. Der Parameter 'classSource' ist falsch. Wie konfiguriert, würde das Ebean-Plugin @Entity-Klassen in Ihrem Testcode anstatt in Ihrem Produktionscode verbessern. Der korrekte Wert ist '$ {project.build.outputDirectory}'.
  3. Stellen Sie sicher, dass Sie den Paketbereich für Ihr Projekt aktualisieren. Dies ist "com.mycompany. **" im folgenden Beispiel.

sollte die komplette config:

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-antrun-plugin</artifactId> 
      <executions> 
       <execution> 
        <id>process-ebean-enhancement</id> 
        <phase>process-classes</phase> 
        <configuration> 
         <tasks> 
          <property name="compile_classpath" refid="maven.compile.classpath" /> 
          <echo 
           message="Ebean enhancing test classes debug level -----------------------------------" /> 
          <echo message="Classpath: ${compile_classpath}" /> 
          <taskdef name="ebeanEnhance" classname="com.avaje.ebean.enhance.ant.AntEnhanceTask" 
           classpath="${compile_classpath}" /> 
          <ebeanEnhance classSource="${project.build.outputDirectory}" 
           packages="com.mycompany.**" transformArgs="debug=1" /> 
         </tasks> 
         <encoding>UTF-8</encoding> 
        </configuration> 
        <goals> 
         <goal>run</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 

Dies wird alle der @Entity Klassen in der "src/main/java/com/mycompany" und unten verbessern.

Sie können die Ausführungszeit verbessern, indem Sie restriktiver auf die zu untersuchenden Pakete reagieren.

Möglicherweise müssen Sie diese Konfiguration auch duplizieren, wenn Sie Testklassen erweitern müssen. Verwenden Sie in diesem Fall die Phase 'proces-test-classes' für einen zweiten Block.

+0

Antwort auch in Blog-Form hier: http://teamflawless.org/2012/using-maven-to-enable-ebean-enhancement/ – JBCP

1

JBCP Antwort ist für alte ebean Version (org.avaje.ebeanorm). Für newer version (io.ebean) müssen Sie zu ebean-maven-plugin wechseln.

<plugin> 
    <groupId>io.ebean</groupId> 
    <artifactId>ebean-maven-plugin</artifactId> 
    <version>${ebean.version}</version> 
    <executions> 
     <execution> 
      <id>main</id> 
      <phase>process-classes</phase> 
      <goals> 
       <goal>enhance</goal> 
      </goals> 
      <configuration> 
       <packages>com.package1.**,com.package2.**</packages> 
       <transformArgs>debug=1</transformArgs> 
       <classSource>${project.build.outputDirectory}</classSource> 
       <classDestination>${project.build.outputDirectory}</classDestination> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

Hinweis: ebean Plugin-Version sollte die gleiche wie ebean Version sein.

Referenz:Maven Repo, Github