Die Durchsetzung der Java-version für Scala-Projekt in der sbt?
Meine scala-Anwendung läuft nur mit Java 7, da kommt es auf Bibliotheken, die nur erschien in dieser version des JDK.
Wie kann ich erzwingen, dass in sbt, so dass die korrekte Fehlermeldung wird sofort angezeigt, wenn der Nutzer Sie verwenden die falsche version von Java beim starten sbt ausführen/kompilieren der Anwendung?
HINWEIS: Es ist KEINE Java™ source code zu kompilieren, hier. Ich nur haben Scala source code. Die Scala-code erfordert eine import java.nio.file.Path
zur Verfügung stehen, die von Java 7.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit
javacOptions ++= Seq("-source", "1.7", "-target", "1.7")
funktioniert nicht, wenn Sie keine Java-Quellen.Aber Sie können die Ziel-JVM für den Scala compiler zu bauen.sbt oder zu Bauen.scala:
Als Ergebnis druckt er auf ein JDK 6:
Hinweis: Vielleicht funktioniert es nur für die neueste SBT/Scalac-version.
Als Scala-code, können Sie stellen Behauptungen in der build-definition. sbt legt die
initialize
als einen gemeinsamen Ort für Dinge wie diese, aber Sie können jede Einstellung, inklusive einer eigenen. Zum Beispiel,Für jeden in der Zukunft, dies ist auch ein guter Weg, es zu tun. Er hält die Ausführung sofort, wenn Sie es nicht finden können die richtige Java-version:
Setzen Sie diese in Ihrem
build.sbt
.initialize value
.build.sbt
DateiIm SBT 0.13.6 es gibt eine neue
VersionNumber
Klasse undVersionNumberCompatibility
Merkmal. Optimieren der Ansatz empfohlen von @MarkHarrah zu verwenden, dies könnte man Folgendes tun:isCompatible
definition tut das falsche, wenn wir jemals eine java -2.0
. Was Sie wollen, ist so etwas wiecurrent.numbers.zip(required.numbers).foldRight(required.numbers.size<=current.numbers.size)((a,b) => (a._1 > a._2) || (a._1==a._2 && b))
build.sbt
oder eine benutzerdefinierte Plug-inproject
.Um zu kompilieren in Java 7, sollten Sie die javac-Kompilierung mit Quelle 1.7.
Sollten Sie
javacOptions ++= Seq("-source", "1.7")
zu Ihrem SBT build-config gefunden werden kann, in die /Projekt Ordner.Hier ist der Verweis von SBT:
http://www.scala-sbt.org/release/docs/Detailed-Topics/Java-Sources.html
Just-in-Fall, wenn Sie eclipse-basierten scala ide ändern Sie die Einstellungen in
Fenster --> pref -- scala-compiler --> standard --> Ziel --> jvm-1.7