SBT に Java 8 の使用を強制するにはどうすればいいですか? 質問する

SBT に Java 8 の使用を強制するにはどうすればいいですか? 質問する

SBT を強制的に Java 8 クラス ファイルにコンパイルするにはどうすればよいでしょうか。scalacOptions += "-target:jvm-1.8" を追加しましたが、次のエラー メッセージが表示されます。

[error] 'jvm-1.8' is not a valid choice for '-target'
[error] bad option: '-target:jvm-1.8'
[error] (compile:compile) Compilation failed

私はSBTバージョン0.15.5を使用しています。

これを build.sbt に追加したので、コンパイルには Java 8 を使用していることはわかっていますが、scalacOptions が失敗する理由がまだわかりませんし、scalac がどのような出力を生成するのかわかりません。

initialize := {
  val _ = initialize.value
  if (sys.props("java.specification.version") != "1.8")
    sys.error("Java 8 is required for this project.")
}

ベストアンサー1

build.sbt ファイルには以下が必要です。

javacOptions ++= Seq("-source", "1.8", "-target", "1.8", "-Xlint")

initialize := {
  val _ = initialize.value
  val javaVersion = sys.props("java.specification.version")
  if (javaVersion != "1.8")
    sys.error("Java 1.8 is required for this project. Found " + javaVersion + " instead")
}

おすすめ記事