다른 모듈에서 사용하는 커스텀 어노테이션에 대한 몇 가지 애노테이션 프로세서가 모듈 중 하나에 포함 된 멀티 모듈 기반 프로젝트에서 작업하고 있습니다. 주석 프로세서 모듈의 종속성을 다른 모듈에 추가 할 때 해당 모듈의 주석은 해당 주석 프로세서에서 처리됩니다.Checker Framework와 함께 커스터마이징 어노테이션 프로세서 사용하기
하지만 최근에 Checker Framework (유형 주석)을 통합 한 다음 위에서 언급 한 모든 맞춤 주석 프로세서 (위에서 언급 한)가 작동을 멈췄습니다. Checker Framework로 작업하는 방법에 대한 아이디어는 대단히 감사하게 생각하니?
는 이의 내가 module_A라는 받는다는 모듈이 있다고 가정 해 봅시다, 시나리오를 취소합니다. 이 모듈에는 "@FoodItem"이라는 주석 (클래스 수준)이 있습니다. "@FoodItem"주석을 사용하여 주석을 추가 한 클래스가 인터페이스 "Food"를 구현해야한다는 규칙을 시행해야합니다. 그래서 같은 클래스를 처리하고 그 규칙을 준수하는지 검사하는 동일한 모듈 (module_A)에 주석 처리기 "FoodItemAnnotationProcessor"를 작성했습니다.
그럼 module_A에 대한 maven 종속성이있는 module_B라는 다른 모듈이 있다고 가정 해 보겠습니다. 이 모듈에는 "@FoodItem"주석이 주석 처리 된 "Pizza"라는 클래스가 있습니다.
위의 구성으로 프로젝트 (module_A 및 module_B 포함)를 빌드하는 경우 "FoodItemAnnotationProcessor"가 컴파일 단계에서 실행되고 위에서 언급 한 규칙에 대해 "피자"클래스의 유효성을 검사합니다.
그 후 나는 checker 프레임 워크를 module_B (here)에 통합했습니다. 그런 다음 검사기 프레임 워크 관련 유효성 검사가 컴파일 타임에 예상대로 실행되지만 "FoodItemAnnotationProcessor"는 작동하지 않습니다.
설치에 대한 자세한 내용을 설명해 주시겠습니까? – mernst
시나리오에 대한 설명 추가 –
참조하는 단계 3의 지침에는 ''주석이있는 코드 스 니펫이 포함됩니다. FoodItemAnnotationProcessor를 거기에 포함 시켰습니까? – mernst