2012-08-16 14 views

cevap

7

EBeans artık kendi Maven Plugin var ama çevrimiçi herhangi bir belge, bu nedenle burada nasıl kullanılacağını örneğidir Eclipse kullanan, sen gerektiğinde böyle, eklenti şekilde çalıştığından emin olmak isteyeceksiniz:

<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

benim için çalışıyor .. ama idamları konfigürasyona koymak zorunda kaldım. – joshua

+1

Eclipse'de m2e kullandığımda derleme çalışır ve çalışır. Ancak m2e, "Eklenti yürütme, yaşam döngüsü yapılandırması kapsamında değil: org.avaje.ebeanorm: avaje-ebeanorm-mavenenhance." Bunu nasıl düzelteceğini bilen var mı? – area5one

+0

@ area5one - İstediğiniz kadar komik, NEDEN cevabını tam olarak ihtiyacınız olan şeyle güncelledim. – JBCP

2

Bu cevap EBeans çok eski bir sürümü içindir

OBSOLETE YANIT, lütfen önemsemeyin.

Avaje sayfasındaki örnek

Orijinal İçerik bazı hatalar vardır.

  1. etiket yanlıştır: 'süreç ebean-geliştirme' bir Maven'in yaşam döngüsü değildir, bu nedenle, örneğin bir konfigürasyonda eklenti olmaz çalıştırmak doğru. Doğru aşama 'süreç sınıfları' dır.
  2. 'classSource' parametresi yanlış. Yapılandırıldığı gibi, ebean eklentisi, üretim kodunuzdan ziyade, test kodunuzda @Entity clases'i artıracaktır. Doğru değer '$ {project.build.outputDirectory}'.
  3. Projeniz için paket alanını güncelleştirdiğinizden emin olun. Bu, aşağıdaki örnekte 'com.Sirketi. **' dir.

tam yapılandırma olmalıdır: Bu "src/main/java/com/şirketim" ve aşağıda @Entity sınıflarının tüm artıracaktır

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

.

İncelenecek paketler üzerinde daha kısıtlayıcı olacak şekilde yürütme süresini artırabilirsiniz.

Ayrıca, sınama sınıflarını geliştirmeniz gerekiyorsa, bu yapılandırmayı çoğaltmanız gerekebilir. Bu durumda, ikinci bir blok için 'test-test-sınıfları' fazını kullanın.

Eclipse ile
<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> 

Eğer:

+0

Cevap: http://teamflawless.org/2012/using-maven-to-enable-ebean-enhancement/ – JBCP

1

JBCP cevabı eski ebean sürümü içindir (org.avaje.ebeanorm). newer version (io.ebean) için ebean-maven-plugin'a değiştirmeniz gerekir.

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

Not: ebean eklentisi sürümü ebean sürümü ile aynı olmalıdır.

Referans:Maven Repo, burada blog formunda da mevcuttur Github