728x90
| 오류 현상
프로젝트를 실행하려고 하는데 아래와 같은 오류가 발생했다.
IDE : intelliJ
error: cannot find symbol log.info("a : {}", a);
^ symbol: variable log
location: class A
@Slf4j 어노테이션이 있는데도 log 변수를 찾지 못하고 있던 것이다.
몇가지 상황을 테스트해보면서 어떤 부분에서 인식을 못하고 있는지 확인해보자.
- Lombok이 프로젝트에 제대로 설정되었는지 확인
프로젝트에서 Lombok이 제대로 설정되지 않은 경우, @Slf4j가 log 객체를 생성하지 못할 수 있다.
- build.gradle 또는 pom.xml에 Lombok이 포함되어 있는지 확인한다.
- IDE에서 Lombok 설정 활성화
IntelliJ IDEA나 Eclipse를 사용하는 경우, Lombok이 제대로 작동하려면 IDE 설정에서 Lombok 지원을 활성화해야 한다.- IntelliJ IDEA: Preferences -> Plugins에서 Lombok 플러그인이 활성화되어 있는지 확인
- Eclipse: Help -> Eclipse Marketplace에서 Lombok 플러그인을 설치하고 Project Lombok 설정 확인
- 프로젝트 재빌드 및 클린
위의 설정이 되어 있어도 @Slf4j가 인식되지 않는 경우, IDE에서 프로젝트를 클린 빌드 후 재빌드 시도- IntelliJ IDEA: Build -> Rebuild Project
- Eclipse: Project -> Clean...
- 컴파일 에러가 지속될 경우 Lombok Annotation Processor 확인
Preferences에서 Annotation Processors가 활성화되어 있는지 확인한다.
더보기
IntelliJ IDEA에서 Lombok Annotation Processor 설정 확인 방법
- 설정 열기: File > Settings (또는 Mac의 경우 IntelliJ IDEA > Preferences)로 이동
- Annotation Processors:
- 왼쪽 사이드바에서 Build, Execution, Deployment > Compiler > Annotation Processors로 이동
- Enable annotation processing 체크:
- Enable annotation processing 옵션을 체크합니다.
- 적용하고 확인을 눌러 설정을 저장합니다.
- 설정을 저장한 후 프로젝트를 다시 빌드합니다.
Eclipse에서 Lombok Annotation Processor 설정 확인 방법
- 설정 열기 : Window > Preferences로 이동
- Annotation Processors:
- 왼쪽 메뉴에서 Java > Compiler > Annotation Processing으로 이동
- Enable annotation processing 체크:
- Enable annotation processing 옵션을 체크합니다.
- 적용하고 확인을 눌러 설정을 저장합니다.
- 프로젝트를 Project > Clean...으로 클린 빌드
나의 경우, build.gradle을 확인해보니, 아래와 같이 선언되어있었다.
dependencies {
...
implementation 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
...
}
위 코드만 추가되어 있을 경우 Lombok은 프로덕션 코드에서는 사용할 수 있지만,
테스트 코드에서는 Lombok이 제대로 동작하지 않을 수 있다.
그래서 테스트코드에 작성한 log가 인식이 안되고 있었던 것이다.
이를 해결하기 위해 Lombok을 테스트 컴파일 환경에서도 사용할 수 있도록 추가 설정을 해주어야한다.
| 해결방법
Gradle에서 Lombok을 테스트 코드에서도 사용할 수 있도록 testCompileOnly 및 testAnnotationProcessor 구성을 추가해야한다.
// 테스트 코드에서 Lombok 사용
testCompileOnly 'org.projectlombok:lombok:1.18.24'
testAnnotationProcessor 'org.projectlombok:lombok:1.18.24'
프로젝트를 다시 동기화 한 후 빌드하니 정상적으로 동작한다!
참고 : Chat GPT
반응형