에러일기

[SpringBoot] error: cannot find symbol - lombok 오류 해결

YooKyungHun 2023. 3. 18. 22:20

에러 메시지

C:\Users\YooKyungHun\Desktop\JSCODE_Spring\spring-class-YooKyungHun\day03_04\spring\src\main\java\com\jscode\spring\day03\TestController.java:25: error: cannot find symbol
log.info("-- Log Test (Path Variable) --");
^
symbol: variable log
location: class TestController

 

문제발생

import lombok.extern.slf4j.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
public class TestController {
@GetMapping("member/{name}")
// http://localhost:8080/member/HongGilDong
public String getMyName(@PathVariable("name") String name) {
log.info("-- Log Test (Path Variable) --");
return "검색한 이름 : " + name;
}
}

 

원인 및 해결책

Gradle 버전이 올라가면서 Lombok 의존성 추가하는 방법이 바뀜.

 

// Gradle 5.x 미만
dependencies {
implementation 'org.projectlombok:lombok'
}
// Gradle 5.x 이상(lombok 버전은 호환가능하게 유동적으로 설정)
dependencies {
compileOnly 'org.projectlombok:lombok:1.18.20'
annotationProcessor 'org.projectlombok:lombok:1.18.20'
}

 

Project > gradle > wrapper > gradle-wrapper.properties 에서

Gradle 버전 확인 후

 

 

build.gradle 파일에서 implementation 으로 된 lombok 의존성을 제거하고

// build.gradle
// 의존성
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
// 롬복 추가!
implementation 'org.projectlombok:lombok:1.18.20' //추가
}

 

해당 코드 2줄 추가

compileOnly 'org.projectlombok:lombok:1.18.20'
annotationProcessor 'org.projectlombok:lombok:1.18.20'

 

전체코드

// 의존성
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
// 롬복 추가!
// implementation 'org.projectlombok:lombok:1.18.20' //추가
compileOnly 'org.projectlombok:lombok:1.18.20'
annotationProcessor 'org.projectlombok:lombok:1.18.20'
}

 

첫 번째 시도

lombok 설치 확인

오른쪽의 Gradle 세로 탭을 눌러서 확인해보니, lombok 자체는 최신버전으로 잘 설치되어있다.