IntellJ Error: java: invalid source release: 11

1. 문제

IntellJ에서 JDK 버전이 다른 프로젝트를 진행하는 경우가 생기가 되었습니다. 이때, 현재 사용중인 1.8.0_161 JDK버전과의 충돌이 발생하였습니다. IntellJ Error: java: invalid source release: 11의 에러가 발생하였습니다. 따라서 해당 에러를 해결하기 위해서 처음에 시도한 방식은 다음과 같습니다.

  1. Fix Language Level

File -> Project Structure -> Project Settings -> Project 에서 Language level을 8로 수정하였습니다.

  1. Fix Java Compiler

Preference -> Build,Execution,Deployment -> Compiler -> Java Compiler에서 Project bytecode version을 8로 수정하고 Target bytecode version을 1.8로 수정하였습니다.

하지만, 이 방식대로 진행하였지만 여전히 java: invalid source release: 11 라는 에러가 발생하였습니다.

2. 해결 방법

2.1. 1. Java JDK 11 설치

brew java 11 설치

JDK 1.8버전과 호환이 맞지 않는다고 생각하여 JDK Homebrew를 통하여 Java 11 버전을 설치하게 되었습니다.

homebrew 설치

1
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

해당 명령어를 통해 homebrew를 설치를 진행하였습니다.

OpenJdk 저장소 추가

OpenJdk저장소를 추가시켜주었습니다.

1
brew tap AdoptOpenJDK/openjdk

자바 11버전 설치

제가 설치할 자바버전은 11버전이기 때문에

1
brew cask install adoptopenjdk8

명령어를 통해 설치를 진행하였습니다.

java version

1
java -version

해당 명령어를 통해 Java 11버전 설치를 완료하였습니다.

java JDK 설치 경로

이제, 제가 맨 처음에 불러왔던 프로젝트 기본 JDK설정을 자바 11로 설정하였으며 Mac기준 설정경로는
Macintosh HD -> Library -> Java -> JavaVirtualMachines -> adoptopenjdk-11.jdk -> contents -> home 으로 진행하였습니다.

2.2. 2. Lombok 플러그인 설치 및 annotationProcessor 설정

하지만, 이번에도 cannot find symbol 라는 에러가 발생하게 되었으며 이 문제를 해결하기 위해 다음과 같은 방법을 사용하였습니다.

lombok plugin 설치

롬복 관련 플러그인이 설치되지 않아 발생하는 문제라 판단되어 롬복을 설치해주었습니다.

annotationProcessor Enable

annotationProcessor은 어노테이션의 코드베이스를 검사, 수정 또는 생성하는데 사용됩니다. 따라서, 해당 설정을 같이 진행해주었습니다.

Preference -> Build,Execution,Deployment -> Annotation Processers에서 Enable annotation processing 에 대한 체킹을 처리하여주었고 해당 annotationProcesserGradle에서 올바르게 인식이 가능하도록 Build.gradle파일에 소스코드를 추가시켜주었습니다.

그리고, build.gradle에서

1
annotationProcessor 'org.projectlombok:lombok'

을 추가하고 gradle synchronized설정을 다시 진행해주니 해당 오류를 해결 할 수 있었습니다.