스프링 프레임워크를 처음부터 다시 깊이 있게 제대로 공부를 하려고 https://www.inflearn.com/course/스프링-입문-스프링부트 강의를 듣기 시작했는데 시작부터 난관에 부딪혔다.
빌드가 안 된다.
분명히 이렇게 저 인텔리제이의 버튼을 눌러서 실행 하는 것은 잘만 됐었다.
그리고 이 build 버튼을 눌러서 빌드를 하는 것도 잘 성공했었다.
그런데 이렇게 터미널에서만 하면
invalid source release: 11 이라면서 빌드에 실패했다.
검색을 해보니까 Settings와 Project Structure에 있는 자바나 JDK 버전을 다 11로 맞추라고 해서
굳이 11로 맞추지 않아도 되는 것까지도 무조건 다 11로 고쳤다. 이렇게 말이다.
그런데도 결과는 똑같다.
인텔리제이 IDE를 통해서 빌드를 하면 잘 되고 직접 터미널로 하니까 안 되니까 문제는 build.gradle에 있지 않을까? 라는 생각을 했다.
왜냐하면 내가 Build and run using을 Gradle이 아니라 IntelliJ IDEA로 해놨기 때문이다.
그래서 문제는 build.gradle에 있을 거라고 생각하고 build.gradle을 봤다.
sourceCompatibility가 '11'로 되어 있는데 원인이 이것인지 알아보기 위해 sourceCompatibility를 '17'로 고쳐보았다.
그랬더니 이번에는 invalid source release: 17 이라는 오류가 났다.
그렇다면 원인은 sourceCompatibility라는 것이 확실해졌다.
그래서 아예 sourceCompatibility='11' 이 부분을 지워봤다.
그랬더니 이렇게 빌드에 성공했다.
왜 그런지는 모르겠다.
일단 검색을 해서 나오는 어떠한 방법으로도 안 됐는데 해결을 해서 너무 다행이다.
build.gradle 파일에서 sourceCompatibility가 어떤 역할을 하는 건지 좀 더 알아봐야겠다.