2017-12-31 36 views
-1

나는 더티 주석 처리기를 리펙토링하려고합니다. 그러므로 나는 옛것에서 어떤 책임을 추출하기 위해 새로운 것을 만들고 싶었다.maven 프로젝트에서 java annotation processor를 제거 할 수 없습니다.

: com.company.coma.shared.annotation.ComaToolAnnotationProcessor
새로운 : com.company.coma.shared.annotation.ToolProcessor

가 이제 구성에서 이전 하나를 제거한

내 pom.xml 파일에서

의 pom.xml

<plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>3.5.1</version> 
     <configuration> 
      <generatedSourcesDirectory> 
       ${project.build.directory}/generated-sources/ 
      </generatedSourcesDirectory> 
      <annotationProcessors> 
       <annotationProcessor> 
        com.company.coma.shared.annotation.ToolProcessor 
       </annotationProcessor> 
       <!--<annotationProcessor>--> 
        <!--com.company.coma.shared.annotation.ComaToolAnnotationProcessor--> 
       <!--</annotationProcessor>--> 
      </annotationProcessors> 
      <source>1.8</source> 
      <target>1.8</target> 
     </configuration> 
    </plugin> 

ComaToolAnnotationProcessor.java 파일을 완전히 제거하고 나중에 전체 프로젝트를 다시 작성하십시오.

아직도이 내 여기 clean install

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.5.1:compile (default-compile) on project module-foo: Compilation failure 
[ERROR] Annotation processor 'com.babiel.coma.shared.annotation.ComaToolAnnotationProcessor' not found 

을 무슨 일이야 무엇인가? 전체 프로젝트에서 그 이름을 지웠을 때도 어떻게 이것을 찾을 수 있습니까?

EDIT # 1 : 전체 주석 처리 플러그인 (maven-compiler)을 비활성화해도 도움이되지 않았습니다. 나는 무슨 일이 일어나고 있는지 이해하지 못합니다. 내가 의존성이나 구성에 더 이상 영향을 미치지 않은 것처럼 보입니다.

+0

당신은 그것을 필요로하는 의존성을 가지고 있습니다. – Zoe

+0

@Zoe 그래요. 그 의존성을 찾고 있지만, 프로젝트 이름도 프로젝트 와이드 grep이라도 찾을 수 없었습니다. – xetra11

답변

0

문제점을 발견했습니다. 최근에 부모 모듈 중 하나의 이름이 변경되었습니다. 그러나 실제로 처리 할 파일을 포함하는 서브 모듈은 여전히 ​​이전 상위 아티팩트를 참조했습니다. 그런 식으로 새로운 부모가되는 생각에 대한 나의 모든 구성은 아무런 영향을주지 않았습니다. 오래된 부모 모듈이 프로젝트 구조에서 완전히 사라진 이래로 꽤 이상한 일 이었지만 확실히 내 maven repo에서 여전히 사용할 수있었습니다.

필자는 내 IDE의 모듈 이름 리팩터링 기능에 크게 의존했다.

+0

언제든지 새 원본 복사본을 확인하고 새 프로젝트를 만들어 문제가 지속되는지 확인할 수 있습니다. –

+0

나는 오래된 미사용 인공물에 관한 문제를 말했다. – xetra11

+0

다음 번에 .... –

0

아마도 (수동으로 또는 수동으로) 프로세서를 META-INF/services 파일에 추가했습니다. 따라서 클래스를 실행하려고 시도하고 지정된 클래스를 찾지 못하면 실패합니다. 참조를 제거하면 문제가 해결 될 수도 있습니다. :)

+0

슬프게도 META-INF 폴더를 생성하지 않았습니다. 컴파일이 성공하지 않는다 – xetra11

+0

당신이 maven을 사용한다면, 당신은 src 폴더에 META-INF 폴더를 가질 수 있다고 생각한다. 컴파일 될 때 복사 될 것이다. 아마도 그런 경우는 아닙니다. –

관련 문제