1. 문제
IntellJ에서 JDK 버전이 다른 프로젝트를 진행하는 경우가 생기가 되었습니다. 이때, 현재 사용중인 1.8.0_161 JDK버전과의 충돌이 발생하였습니다. IntellJ Error: java: invalid source release: 11
의 에러가 발생하였습니다. 따라서 해당 에러를 해결하기 위해서 처음에 시도한 방식은 다음과 같습니다.
- Fix Language Level
File -> Project Structure -> Project Settings -> Project
에서 Language level을 8로 수정하였습니다.
- 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
에 대한 체킹을 처리하여주었고 해당 annotationProcesser
가 Gradle
에서 올바르게 인식이 가능하도록 Build.gradle
파일에 소스코드를 추가시켜주었습니다.
그리고, build.gradle에서
1 | annotationProcessor 'org.projectlombok:lombok' |
을 추가하고 gradle synchronized
설정을 다시 진행해주니 해당 오류를 해결 할 수 있었습니다.