본문 바로가기
Tools

[IntelliJ] Error:java: javacTask: source release 8 requires target release 1.8

by A6K 2022. 6. 23.

IntelliJ IDE를 사용해 개발하보면 다음 에러를 만나게 되는 경우가 있다.

Error:java: javacTask: source release 8 requires target release 1.8

뭔가 자바 버전이 맞지 않다는 에러로 보인다.

IntelliJ를 오래 사용한 개발자라면 쉽게 해결할 수 있는 문제이지만 잘 모르면 당황하게 된다.

해결방법

에러 메시지가 전하는 대로 자바 버전 정보를 IntelliJ 설정에서 변경해주면 된다.

우선 Settings 창을 열고 Build, Execution, Deployment > Compiler > Java Compiler 메뉴를 들어가보면 일부 모듈의 Target bytecode version이 다른 것을 볼 수 있다. 저걸 수정해주면된다.

Target bytecode version 값을 수정했을 경우 일단은 잘 동작하는데 메이븐 프로젝트의 경우 아예 pom.xml 파일에 추가해주는게 정신건강에 좋다.

프로젝트에 dependency 추가를 하거나 뭔가 바뀌면 다시 저 설정이 돌아가서 빌드가 안된다. 그러면 또 창을 열고 고쳐줘야 한다.

그냥 pom.xml 파일에 다음을 추가해주자.

<build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>8</source>
          <target>8</target>
        </configuration>
      </plugin>
    </plugins>
  </build>

그 밖에

그 밖에 File > Project Structure > Project > Project SDK 로 들어가보면 프로젝트의 SDK와 Language Level을 설정할 수 있다. 이를 설정하면 프로젝트에 속한 모듈에 프로젝트 설정을 기본값으로 적용할 수 있다.

물론 File > Project Structure > Modules 메뉴에서 프로젝트를 구성하고 있는 모듈 별로 SDK와 Language Level을 지정할 수도 있다.

댓글