IntelliJ IDEA에서 Scala를 사용하는 중 컴파일 시 다음과 같은 오류 메시지가 발생하였다.

Error:scalac: 'jvm-1.8' is not a valid choice for '-target'
Error:scalac: bad option: '-target:jvm-1.8'

원인

Scala 2.11.4 이전 버전에는 jvm-1.8이 target으로 설정되어 있지 않아 발생하는 현상(https://issues.scala-lang.org/browse/SI-8966)으로 IntelliJ IDEA에서 Default로 -target:jvm-1.8 옵션이 저장되어 발생한다.

해결 방법

이 문제를 해결하기 위해서는 2가지의 방법이 있다. 나의 경우는 gradle에서 scala를 설정하여 사용하고 있었기 때문에 2번의 방법으로 해결하였다. 프로젝트 설정에 따라 아래의 해결 방법을 참고하여 설정한다.

방법 1. IntelliJ IDEA의 Perference에서 해당 Argument 제거

  1. IntelliJ IDEA의 Preferences 에서 Scala compiler 검색
  2. Additional compiler options = -target:jvm-1.8 제거

방법 2. gradle을 사용하는 경우,

build.gradle에 다음과 같이 jvm을 1.7로 설정한다.

tasks.withType(ScalaCompile) {
    sourceCompatibility = "1.7"
    targetCompatibility = "1.7"
}

Scala 최신 버전을 사용하지 않아서 발생하는 현상으로 나의 경우에는 Spark 버전(2.10.x)에 맞춰서 Scala를 쓰다보니 발생하였다. 사실 Spark의 Scala 버전이 업데이트되면 자연스럽게 해결될 문제다. 하지만 Spark가 아닌 다른 라이브러리와의 경우에도 Scala 버전 충돌로 인해 동일한 문제가 발생 가능하다는 사실을 알고 있어야겠다.