2013-02-14 5 views
6

은 현재 내가 프로젝트에 대한 이클립스에서 주석 프로세서를 가진 파일을 생성 저장에 이클립스 주석 프로세서를 실행합니다. 저장시 주석 프로세서를 실행할 수 있도록 Eclipse를 설정하려면 어떻게해야합니까?방법이 꽤 많은 시간이 소요됩니다</p> <pre><code>Right click on project > Run As > Maven Clean Right click on project > Run As > Maven install </code></pre> <p>에 의해

"자동으로 빌드"기능이 있지만 주석 처리기를 무시하는 것 같습니다. BTW 나는 "자동으로 JDT APT 구성 활성화"와 함께 m2e apt 플러그인을 사용하고 있습니다.

+2

'Java 컴파일러> 주석 처리'에서 프로젝트 설정을 확인하고 모든 설정이 활성화되어 있는지 확인하십시오. – gk5885

+0

안녕하세요. 문제를 해결 했습니까? – LppEdd

+0

예 넷빈으로 전환했습니다. – AndiDev

답변

1

나는 그래서, 당신은 메이븐 목표를 실행하는 트리거를 필요가 있다고 생각 :

당신은 자동으로 maven install plugin 로컬로 배포 된 항아리에 유효한 받는다는 라이프 사이클 액션을

예를 추가해야합니다 :

<build> 
    <!-- ... --> 

    <pluginManagement> 
     <plugins> 
      <plugin> 
       <groupId>org.eclipse.m2e</groupId> 
       <artifactId>lifecycle-mapping</artifactId> 
       <version>1.0.0</version> 
       <configuration> 
        <lifecycleMappingMetadata> 
         <pluginExecutions> 

          <pluginExecution> 
           <pluginExecutionFilter> 
            <groupId>org.apache.maven.plugins</groupId> 
            <artifactId>maven-jar-plugin</artifactId> 
            <versionRange>[2.0,)</versionRange> 
            <goals> 
             <goal>jar</goal> 
            </goals> 
           </pluginExecutionFilter> 
           <action> 
            <execute> 
             <runOnConfiguration>true</runOnConfiguration> 
             <runOnIncremental>true</runOnIncremental> 
            </execute> 
           </action> 
          </pluginExecution> 

          <pluginExecution> 
           <pluginExecutionFilter> 
            <groupId>org.apache.maven.plugins</groupId> 
            <artifactId>maven-install-plugin</artifactId> 
            <versionRange>[2.5.0,)</versionRange> 
            <goals> 
             <goal>install</goal> 
            </goals> 
           </pluginExecutionFilter> 
           <action> 
            <execute> 
             <runOnConfiguration>true</runOnConfiguration> 
             <runOnIncremental>true</runOnIncremental> 
            </execute> 
           </action> 
          </pluginExecution> 

         </pluginExecutions> 
        </lifecycleMappingMetadata> 
       </configuration> 
      </plugin> 
     </plugins> 
    </pluginManagement> 
</build> 

힌트 : Maven Project Builder is invoked every time I change a source file (GWT)에 관한 경고로 : 당신이 포함이있는 경우 일반적으로 테스트를 포함 설치 정상적인 메이븐 빌드주기에서 그들을 uded

1

일부 프로젝트에 대한 Eclipse에서 작업하는 주석 처리가 있습니다; 나에게 그것은 저장을 위해 노력하고 있으며 mvn install (Eclipse는 자체 컴파일러를 실행하므로 Maven과 다르게 작동 함) 할 필요가 없다.

나는 또한 이것을 위해 m2e-apt 플러그인을 사용하고 있습니다. 위에서 언급 한 것처럼 Eclipse는 자체 컴파일러를 실행합니다. 즉, 출력물이 Maven보다 약간 다를 수 있음을 의미합니다 (Eclipse 프로젝트가 아니라 프로젝트에서 마우스 오른쪽 버튼 클릭> Maven 정리/설치). 나는 당신의 프로세서가 Maven에서 작동하지만 Eclipse에서는 작동하지 않을 가능성이 매우 높기 때문에 언급하고있다. (비록 대부분의 시간이 똑같은 출력을 내고 있지만 약간의 차이는 있지만 아주 작다.) 필자는 (주석 처리 오류가 기록 된 곳이기 때문에) Eclipse의 오류 로그를 계속 주시합니다. 그래서 여기

내가 제안 것입니다 :

  • 포스트 (당신이 활성화 올바른 옵션을 갖고있는 것 같다에도 불구하고) 이클립스에서 메이븐/주석 처리 설정 그림.
  • 그림을 Java/Compiler 설정으로 게시 (활성화해야하는 체크 표시가 있지만 작동하지 않음).
  • 귀하의 pom.xml 게시는 이상하게도 도움이 될 것입니다. 특히 maven-compiler-plugin에 대한 사용자 지정 구성이있는 경우 해당 구성 중 일부는 컴파일러 인수와 같이 m2e-apt으로 해석됩니다.
  • .factorypath이라는 파일을 찾으십시오. 거기에서 m2e-apt은 주석 처리를 위해 스캔하는 jar 목록을 유지합니다 (실제로 프로세서가 포함되어 있지 않더라도 프로젝트의 모든 jar 파일을 찾을 수 있습니다. 즉, maven-compiler-plugin이 특정 프로세서 목록을 고려하십시오). 프로세서가 포함 된 jar가 .factorypath에 없으면 작동하지 않습니다.
  • 마지막으로 중요한 것은 문제를 일으킬 수있는 또 다른 것이 있습니다. 실제 주석 프로세서 ("클라이언트"가 아님)가 포함 된 프로젝트가 "클라이언트"프로젝트와 동일한 작업 공간에 있으면 m2e-apt은 단순히 주석 프로세서를 무시합니다. 나는 이유를 모른다.이 경우 주석 프로세서 프로젝트를 닫으면 충분합니다 (작업 공간에서 삭제할 필요는 없습니다).

편집 : 당신은 메이븐을 통해 주석 처리를 실행 할 경우 말을 잊어 버렸 (그리고 당신은 주석을 처리하기 위해 메이븐를 호출하고), 다음 mvn compile는 충분합니다. 또한 별도로 실행하지 않아도됩니다 (먼저 mvn clean, mvn compile). mvn clean compile으로 한 번에 실행할 수 있습니다. 그것은 똑같은 효과를 가져 오기로되어 있습니다.

1

Java 프로젝트 설정 (프로젝트 > Java compiler > Annotation processors을 마우스 오른쪽 단추로 클릭하여 액세스 할 수 있음)이 주석 처리를 활성화하고 설정이 사용자의 expections와 일치하는지 확인하십시오.

Maven 프로젝트의 경우 m2e는 pom.xml 내용에 따라 해당 설정을 올바르게 구성해야합니다. 그러나 이것은 모든 Maven 플러그인 (일부는 "out-of-the-box"로 지원 될 것이고 어떤 플러그인은 특정 플러그인이 필요할 것입니다 ...)에 대해 원활하게 작동하지 않습니다.

+0

내 지식에 따르면, 주석 처리를 처리하는 것은 m2e가 아닙니다. 'm2e-apt'입니다. – Andrei