1

어노테이션에 해당 프로세서를 어떻게 찾을 수 있습니까? 예를 들어, JUnit에서 @Before annotation을 고려하십시오.어노테이션과 프로세서의 일치

Retention(RetentionPolicy.RUNTIME) 
@Target(ElementType.METHOD) 
public @interface Before { 
} 

IDEA를 사용하여 @ 전에 검색하여 @ 사용 전만 찾습니다. 그리고 주석에서 중단 점은 불가능합니다.

+0

"Before"를 마우스 오른쪽 버튼으로 클릭하고 IDE에서 "Find Usages"를 선택합니다. –

+0

특수 효과는 무엇을 의미합니까? – singe3

+0

@PeterLawrey, 그것이 처리되고 사용되지 않는 곳을 찾습니까? –

답변

1

저는 브레이크 포인트를 사용하는 프로세서를 찾아야한다고 생각합니다.하지만 조금 복잡합니다. 이 문서 주석 프로세서에 중단 점을 설정하는 방법에 대해 설명합니다 :

-J-Xdebug -J-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005 

나는 시도했다 :
Debugging an annotation processor in every IDE

는 기본적으로 디버그 모드에서 컴파일러 실행에 사용되는 JVM을 만들기 위해 몇 가지 컴파일러 플래그를 설정해야 기사에서 설명한대로 이클립스에서 플래그를 설정하지만이 옵션이 제거 된 것처럼 보입니다. 이것이 IDEA에서 가능한지 나는 모른다.

특정 프로세서를 디버깅하지 않으려면 메서드에서 중단 점을 javax.annotation.processing.AbstractProcessor으로 설정해보십시오. 모든 프로세서가이 추상 클래스를 사용한다는 보장은 없지만 일부는 자체 구현을 가질 수 있습니다. javax.annotation.processing.Processor. 어노테이션이 프로세서에 의해서만 처리된다는 보장이 없기 때문에 컴파일러는 일부 어노테이션을 직접 처리 할 수 ​​있습니다. Annotation은 런타임에 처리 될 수 있습니다. Annotation 클래스 자체에 중단 점을 추가해야 할 수도 있습니다.

표준 라이브러리 클래스에서 중단 점을 설정하려면 attach the source in eclipse이어야합니다.

+0

실제로 Peter Lawrey의 솔루션이 작동합니다. 라이브러리에서 사용법을 검색하여 프로세서를 찾을 수있었습니다. –