2011-03-14 4 views
8

maven-processor-plugin 용 주석 프로세서 작성에 관심이 있습니다. 나는 Maven에 비교적 익숙하다.maven-processor-plugin 용 주석 프로세서 작성

프로젝트 경로에서 프로세서 Java 소스 코드 (예 : src/main/java/...)를 적절히 컴파일해야하지만 내 아티팩트 JAR 파일의 일부로 끝나지 않아야합니다.

답변

9

가장 쉬운 방법은 주석 프로세서를 종속성으로 포함하는 별도의 프로젝트에 보관하는 것입니다.

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

(이되어야합니다 :

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

프로세서 플러그인 : 그 경우

이 설정

컴파일러 플러그인을 사용하여, 당신을 위해 작동하지 않습니다 두 컴파일 사이에서 실행되므로이 ​​코드를 pom에 배치해야합니다.

<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> 
: 위 받는다는 - 컴파일러 플러그인 구성)

항아리 플러그인 후 XML