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")
}