본문 바로가기
Gradle

Lombok 사용 시 error: cannot find symbol 에러가 발생한다면? Gradle 버전 변경을!!

by 노력남자 2020. 12. 8.
반응형

안녕하세요.

 

프로젝트 처음 셋팅 단계에서 롬복(Lombok) 적용 후 만들어 놓은 테스트 돌려보니 갑자기 뜬금없는 에러가 나더라구요.

 

어라? 이전엔 그냥 Enable Annotation 옵션만 활성화 시키면 됐는데 뭐지? 하고 찾아봤습니다.

 

 

원인

 

Gradle 5 부터는 Lombok 설정 방법이 약간 바뀌었기 때문입니다.

 

저는 그동안 Gradle 4 이하 버전을 사용하고 있었나봅니다.

 

Gradle 버전 확인 방법

 

일단 자신이 쓰고 있는 Gradle 버전부터 확인해볼까요?

 

gradlew -v

 

 

저는 5.6.4 버전을 사용하고 있습니다. 제가 만약 Gradle 4로 버전 변경을 하고싶다면 어떻게 해야 할까요?

 

gradlew wrapper --gradle-version 4.10.2

 

 

 

버전이 변경된 것을 볼 수 있습니다. 위와 같이 변경되면 gradle/wrapper/gradle-wrapper.properties 의 내용이 변경됩니다. 물론 관련된 .jar도 변경됩니다.

 

 

그럼 이제 아까 발생했던 문제를 해결해보겠습니다. 

 

해결방법

 

해결방법은 Gradle 4를 사용하거나 Gradle 5에 맞는 설정을 하는 것입니다.

 

1. Gradle 4 에서 Lombok 설정

 

① build.gradle에 의존성 추가

 

compile('org.projectlombok:lombok')

 

 

② ctrl + shift + a, command + shift +a 눌러서 enable annotation 옵션 활성화

 

 

2. Gradle 5 에서 Lombok 설정

 

Gradle 5는 Gradle 4와 다르게 설정을 변경할 필요가 없고 build.gradle에 선언 방법만 바꿔주시면 됩니다.

 

compileOnly("org.projectlombok:lombok")
testCompileOnly("org.projectlombok:lombok")
annotationProcessor("org.projectlombok:lombok")
testAnnotationProcessor("org.projectlombok:lombok")

 

compileOnly : 컴파일에만 사용

testCompileOnly : 테스트 컴파일에만 사용

annotationProcessor : 어노테이션에만 사용 (annotation 전용 뭐가 있나봅니다. 이후에 자세히 찾아서 다루겠습니다.)

testAnnotationProcessor : 테스트 어노테이션에만 사용 

 

 

이상입니다.

반응형

'Gradle' 카테고리의 다른 글

[Gradle] Dependency Configuration 종류 및 기능  (0) 2023.02.14

댓글