2011-03-14 15 views
8

मुझे मेवेन प्रोसेसर-प्लगइन के लिए एनोटेशन प्रोसेसर लिखने में रूचि है। मैं मेवेन के लिए अपेक्षाकृत नया हूँ।मैवेन-प्रोसेसर-प्लगइन के लिए एनोटेशन प्रोसेसर लिखना

जहां प्रोजेक्ट पथ में प्रोसेसर जावा स्रोत कोड जाना चाहिए (उदा .: src/main/java/...) ताकि यह उचित रूप से संकलित हो जाए, लेकिन मेरी आर्टिफैक्ट JAR फ़ाइल के हिस्से के रूप में समाप्त नहीं होता है?

उत्तर

9

आपके एनोटेशन प्रोसेसर को एक अलग परियोजना में रखने का सबसे आसान तरीका है जिसे आप निर्भरता के रूप में शामिल करते हैं।

कि यदि आप के लिए काम नहीं करता है, इस config

संकलक प्लगइन का उपयोग करें:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>2.3.2</version> 
    <configuration> 
     <source>1.5</source> 
     <target>1.5</target> 
    </configuration> 
    <inherited>true</inherited> 
    <executions> 
     <execution> 
      <id>default-compile</id> 
      <inherited>true</inherited> 
      <configuration> 
       <!-- limit first compilation run to processor --> 
       <includes>path/to/processor</includes> 
      </configuration> 
     </execution> 
     <execution> 
      <id>after-processing</id> 
      <phase>process-classes</phase> 
      <goals> 
       <goal>compile</goal> 
      </goals> 
      <inherited>false</inherited> 
      <configuration> 
       <excludes>path/to/processor</excludes> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

प्रोसेसर प्लगइन:

<plugin> 
    <groupId>org.bsc.maven</groupId> 
    <artifactId>maven-processor-plugin</artifactId> 
    <executions> 
     <execution> 
      <id>process</id> 
      <goals> 
       <goal>process</goal> 
      </goals> 
      <phase>compile</phase> 
      <configuration> 
       <processors> 
        <processor>com.yourcompany.YourProcessor</processor> 
       </processors> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

(ध्यान दें कि यह होना चाहिए दो संकलन रनों के बीच निष्पादित, इसलिए यह आवश्यक है कि आप इस कोड को पोम में रखें। एक्सएमएल ऊपर Maven-संकलक प्लगइन विन्यास)

जार प्लगइन के बाद:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-jar-plugin</artifactId> 
    <version>2.3.1</version> 
    <configuration> 
     <excludes>path/to/processor</excludes> 
    </configuration> 
    <inherited>true</inherited> 
</plugin> 
संबंधित मुद्दे