[IntelliJ] Source set model building failure (SDK 버전 문제)
React / SpringBoot(JPA)
쪼꼬마한 노트북으로 작업하다가
거북목(이긴한데 암튼) 되는 게 빠를 것 같아서
데스크탑으로 작업 환경을 바꾸다 일어난 일이다.
으잉?
root project '(프로젝트이름)': Source set model building failure
Source set dependency model building failure
Could not resolve all dependencies for configuration ':compileClasspath;..
사실 이 컴퓨터로는 바로 직전 프로젝트도 작업했던 전적이 있던지라
깃허브를 통해 clone 한 순간부터 냅다 빌드 오류를 띄워 적잖이 당황했다.
챗gpt 에게 물어보니
프로젝트를 빌드하는 데 실패한 원인이 Gradle 과 관련된 문제로 보이며,
주요 원인 4가지를 언급했다.
1. Gradle 설정 문제
2.의존성(Dependencies) 문제
3. JDK 설정 문제
4. 프로젝트 동기화(Sync) 문제
에러들을 보면 dependencies 에러도 함께 뜬 것으로 보아 의존성 문제는 확실한데.
build.gradle 파일을 열어보니 코드들이 전부 비활성화 되어 있었다.
그리고 눈에 띈 한 코드..
JavaLanguageVersion.of(17)
17버전의 Java 언어 기능을 사용한다.
설마 JDK 를 다른 버전으로 깔았나? 싶어서 JDK 설정부터 확인하기로 했다.
File → Project Structrue → SDKs

23버전만 깔려있는 컴퓨터에서
원하는 17버전을 찾지 못한 프로젝트는
SDK 를 불러오지도 못하고 있었다.
https://www.oracle.com/java/technologies/downloads/#java17-windows
Download the Latest Java LTS Free
Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts.
www.oracle.com
SDK 는 Software Development Kit 의 약자로, 개발 환경에서 사용하는 도구들의 집합을 의미한다.
자바 기반의 SpringBoot 를 사용하는 본인은 Java Development Kit (JDK) 설치가 필요하다.
보통은 안정적인 JDK 버전(LTS)인 8, 11, 17 을 주로 사용하기 때문에
프로젝트를 생성할 당시에도 17버전으로 설정했던 것이다.
왜 23버전이 깔려있었는지는 모르겠지만..
곧바로 17버전의 JDK 를 깔고
Project Structure 창으로 돌아와 17 버전이 설치된 폴더로 불러와주었다.
SDK 버전과 Language level 이 같아야 충돌이 나지 않는다고 한다.
그래서 모두 17로 맞춰줬다.
설정을 변경한 후
File → Invalidate Caches/Restart 를 실행 해 캐시를 초기화해주었다.
캐시 초기화로 재실행된 인텔리제이는
무사히 Gradle 을 불러오기 시작했다!
여태 jdk 버전의 중요성을 크게 느끼지 못하고 있었는데
자바 표준에 벗어난 기술을 포함하고 있는 jdk 버전을 피하고 안정적인 lts 버전을 많이 사용하고 있다는 점,
그리고 스프링부트를 이용한 프로젝트는 생성 당시 jdk 버전을 지정한다는 점을
다시 한 번 떠올리게 됐던 시간이었다..