Comment forcer SBT à utiliser Java 8?

Comment puis-je forcer SBT à compiler des fichiers de classe Java 8. J'ai ajouté scalacOptions += "-cible:jvm-1.8" mais il donne le message d'erreur suivant:

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

j'utilise la version 0.15.5 de SBT.

je sais que J'utilise Java 8 pour compiler car je l'ai ajouté pour construire.sbt, mais je me demande toujours pourquoi scalacOptions échoue et je ne sais pas quelle sortie le scalac produit.

initialize := {
  val _ = initialize.value
  if (sys.props("java.specification.version") != "1.8")
    sys.error("Java 8 is required for this project.")
}
23
demandé sur Phil 2014-09-19 07:56:38

2 réponses

Vous avez besoin sur votre construction.fichier sbt.

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

initialize := {
  val _ = initialize.value
  if (sys.props("java.specification.version") != "1.8")
    sys.error("Java 8 is required for this project.")
}
34
répondu Renato 2014-10-08 07:47:48

la version Scala (2.11.2) ne supporte pas -target:jvm-1.8 option.

$ scala -version
Scala code runner version 2.11.2 -- Copyright 2002-2013, LAMP/EPFL

$ scala -target
Usage: -target:<target>
 where <target> choices are jvm-1.5, jvm-1.6, jvm-1.7 (default: jvm-1.6)

bad option: '-target'

Usage: scala <options> [<script|class|object|jar> <arguments>]
   or  scala -help

All options to scalac (see scalac -help) are also allowed.
19
répondu Kenji Yoshida 2015-05-20 12:30:50