2012-08-16 10 views
5

मैं थोड़ी देर के लिए Avaje.org ebean ORM परत का उपयोग कर रहा हूं, लेकिन मुझे समझ में नहीं आता है कि "Ebean v2.6.0 User Guide" में मेवेन के साथ वर्णित बाइट-कोड एन्हांसमेंट कार्यक्षमता को कैसे सक्षम किया जाए।मैवेन में ईबीन संवर्धन कैसे सक्षम करूं?

मुझे Avaje.org मुखपृष्ठ पर configuration example मिला, लेकिन यह काम नहीं करता है। गिटहब पर demo Maven boilerplate भी नहीं है।

सहायता!

उत्तर

7

EBeans अब अपनी ही Maven प्लगइन है, लेकिन मैं ऑनलाइन किसी भी प्रलेखन नहीं मिल रहा है, तो यह इस प्रकार का उपयोग करने के का एक उदाहरण है ग्रहण का उपयोग करें, आप यकीन है कि यह इस तरह, जब जरूरत प्लगइन चलाता है बनाना चाहते जाएगा:

<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

मेरे लिए काम करता .. लेकिन मुझे विन्यास के अंदर निष्पादन करना पड़ा। – joshua

+1

जब मैं ग्रहण में m2e का उपयोग करता हूं तो संकलन कार्य करता है, और यह चलता है। लेकिन एम 2 शिकायत करता है "प्लगइन निष्पादन जीवन चक्र विन्यास द्वारा कवर नहीं किया गया है: org.avaje.ebeanorm: avaje-ebeanorm-mavenenhance।" क्या किसी को पता है कि इसे किस प्रकार ठीक किया जा सकता है? – area5one

+0

@ area5one - मजाकिया जो आपने पूछा है, मैंने केवल वही जवाब दिया है जो आपको चाहिए। – JBCP

2

अप्रचलित उत्तर

इस उत्तर EBeans का एक बहुत ही पुराने संस्करण के लिए है, यह ध्यान न दें।

मूल सामग्री

Avaje पृष्ठ पर उदाहरण कुछ गलतियों है।

  1. टैग गलत है: 'प्रक्रिया-ebean-वृद्धि' एक Maven जीवन चक्र नहीं है, तो उदाहरण के विन्यास में प्लगइन नहीं रन सही ढंग से होगा। सही चरण 'प्रक्रिया-वर्ग' है।
  2. 'कक्षा स्रोत' पैरामीटर गलत है। कॉन्फ़िगर किए गए अनुसार, ईबेन प्लगइन आपके उत्पादन कोड के बजाय आपके परीक्षण कोड में @ एंटीटी क्लिक्स को बढ़ाएगा। सही मान '$ {project.build.outputDirectory}' है।
  3. अपने प्रोजेक्ट के लिए पैकेज-स्पेस को अपडेट करना सुनिश्चित करें। यह नीचे दिए गए उदाहरण में 'com.mycompany। **' है।

पूरा 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> 

यह "src/मुख्य/जावा/com/mycompany" और नीचे में @Entity कक्षाओं के सभी में वृद्धि होगी।

आप परीक्षण करने के लिए संकुल पर अधिक प्रतिबंधक होने के द्वारा निष्पादन समय में सुधार कर सकते हैं।

इसके अलावा, यदि आपको परीक्षण कक्षाओं को बढ़ाने की आवश्यकता है तो आपको इस कॉन्फ़िगर को डुप्लिकेट करने की आवश्यकता हो सकती है। उस स्थिति में, दूसरे ब्लॉक के लिए 'proces-test-classes' चरण का उपयोग करें।

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

ग्रहण के साथ

आप हैं:

+0

उत्तर ब्लॉग प्रपत्र यहाँ में भी उपलब्ध: http://teamflawless.org/2012/using-maven-to-enable-ebean-enhancement/ – JBCP

1

JBCP के जवाब वर्ष ebean संस्करण के लिए है (012,)। newer version (io.ebean) के लिए आपको ebean-maven-plugin पर बदलना होगा।

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

नोट: ebean प्लगइन संस्करण ebean संस्करण के रूप में ही होना चाहिए।

संदर्भ:Maven Repo, Github

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^