김영한의 스프링 핵심 원리 - 고급편 강의 파일을 상당히 오랜만에 켰다.
그런데, 잘 작동하던 파일이 아래와 같이 오류가 뜬 것이다.
인텔리제이를 켜서 오류를 확인해보니 위와 같은 소리가 나온다. 분명 잘 됐단 말이지?
그래서 위의 Add 'spring-boot-starter-web' to classpath를 클릭하니까
왜 갑자기 Maven Repository에서 라이브러리를 다운받아야 한다고 뜨는 것이다.
참고로 빌드 시 gradle로 빌드했고, dependencies를 봐도 잘 설정되어 있었다.
그래서 일단 gradle를 다시 새로고침을 눌러 주었더니, 멀쩡하게 잘 된다.
사실 맞왜틀?도 아니고 틀왜맞?같은 상황인데... 왜 그런지는 모르겠다... 싶어서 구글링을 통해서 찾아보았다.
내 경우는, 인텔리제이와 같은 IDE에서 gradle 프로젝트가 제대로 동기화되지 않아서, 스프링부트 관련 클래스를 인식하지 못하는 오류였다.
이걸 해결하기 위해 build.gradle 버튼을 다시 눌러서 프로젝트를 동기화하였다. 이걸 통해서 build.gradle 파일을 다시 인텔리제이가 읽어들이고, 필요한 모든 종속성을 제대로 인식해서 오류가 사라진 것이다.
이번 케이스는 비교적 쉽게 해결되었지만, 다음에 이런 오류가 또 발생했는데 이렇게 해결되지 않을 경우를 대비해서 몇가지를 더 찾아봤다.
아예 프로젝트 빌드를 clean 후에 다시 build 해서 해결하는 방법도 있었고,
File-Invalided caches/Restart를 실행해서 재구동한 방법도 있었다.
(메뉴에 있는 것 같은데, 나는 못 찾아서 설정에서 검색해서 찾았다.)
버전 충돌 문제가 발생하기도 하였다.(JDK 17에 접근해야 하는데 이전에 설치한 JDK 18에 접근하면서 생긴 오류)
웬만하면 LTS 버전을 씁시다.
가장 근본적인 해결책은 버전을 정확하게 써주는 것이며, 사람마다 기준은 다르겠지만 나의 경우에는 Usages가 높으면서 & 최신 버전인 것들을 우선적으로 사용해 줬다.
(지금 작업하고 있는 프로젝트의 경우에는 3.3.1버전으로 작업하였다.)
이 이외에도 문제가 되는 라이브러리에서 해당 모듈을 빼는 방식 등도 있는데, 이건 현업에서 더 충돌 가능성이 높은 프로젝트를 작업할 때 그러지 않을까 싶다.
참고 자료
build.gradle 빌드 실패 에러(JDK 17.0.6, Sp... - 인프런 | 커뮤니티 질문&답변
누구나 함께하는 인프런 커뮤니티. 모르면 묻고, 해답을 찾아보세요.
www.inflearn.com
'Backend' 카테고리의 다른 글
[Java Springboot] 이메일 API 테스트 코드 만들기(시행착오 중) (0) | 2024.08.03 |
---|---|
[Java Springboot] 이메일 발송 API 코드 리팩토링 (0) | 2024.07.24 |
[Java Springboot] 이메일 발송 API 만들기 (0) | 2024.07.15 |
lombok.Value vs org.springframework.beans.factory.annotation.Value (1) | 2024.07.08 |
테스트코드를 왜 짜는가?와 테스트코드 짜는 법(Java)(1) (0) | 2024.06.21 |