개린이 탈출기

[IntelliJ] 빌드 오류 해결.(Language level 변경) 본문

개발 조각 지식

[IntelliJ] 빌드 오류 해결.(Language level 변경)

yooverd 2024. 11. 20. 09:49
728x90
반응형
SMALL

처음보는 에러를 마주했다.
무슨 에러일까 차근차근 에러메시지를 읽어보니, 그동안 몇번 발생했던 language level 과 관련된 오류 같아 보였다.

그동안 하던대로 수정했는데 오늘따라 유독 프로젝트 빌드가 잘 되지 않아 어려움을 겪어서 평소보다 더 꼼꼼히 설정옵션을 읽어보았고, 그냥 내가 알게된 점을 조금 정리해두려고 한다.


 

오류 메시지

java: diamond operator is not supported in -source 1.5
  (use -source 7 or higher to enable diamond operator)

 

위의 메시지를 읽어보았을 때, diamond operator 는 1.5 소스에서는 제공되지 않으며 7 이상의 소스를 사용해야한다고 안내하고 있음을 알 수 있다.

source 는 아마도 Language level 을 의미하는 것 같고 변경하는 방법은 다음과 같다.

 

Langauge level 변경

Project Structure 창을 열어

Language level 부분을 수정해준 뒤 apply 버튼을 누른 뒤 다시 빌드하면 된다!

 

나의 경우 기존에 5 - 'enum' keyword, generics, autoboxing etc 로 설정되어 있어서 빌드가 되지 않았던 것이었고, 에러메시지의 안내에 따라 LTS 버전 중 하나인 8버전으로 설정하여 위의 문제를 해결하였다.

 

Language level 은 모듈 별로도 설정할 수 있다!

 

같은 창에서 Module 매뉴로 들어오면 프로젝트의 모듈마다 각각 다르게 Language level 을 설정할 수 있다.

사실 그동안 내가 뭘 바꿨는지도 제대로 인지하지 못한 채, 그냥 어디서든 8버전으로 수정하면 된다! 하고 거의 외우듯이 하여 여기서 언어 레벨을 수정하곤 했다.

그래서 오늘 빌드 오류가 발생했는데 빠르게 해결하지 못했고, 나 자신에게 조금 실망하였다..ㅜ

 


사람마다 선호하는 방식이 다르겠지만 나라면 Project 단위에서 language level 을 설정하고 각 모듈애선 기본적으로 Project defualt 를 따르도록 설정할 것 같다. 그래야 나중에 설정 변경이 필요할 때 더욱 편리할 것 같기 때문이다.

 

휴. 처음 입사하고 빨리 업무를 해결하고 싶어서 사수님이 알려주시는 내용에 토달지 않고 암기하듯이 외운 것들이 이렇게 야금야금 괴롭힐 줄은 몰랐다..ㅜ

지금이라도 꼼꼼히 읽어보고 어떤 문제의 해결방법을 알려주시면 시간을 조금 빼앗게 될 지라도 간단하게나마 여쭤보는 습관을 들이도록 노력해야지ㅜ

728x90
반응형
LIST