에러 메시지
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 자체는 최신버전으로 잘 설치되어있다.
