2012-05-09 7 views
5

Ich habe ein Play-Projekt. Leider deserialisiere ich einige Fallklassen, die mit scala 2.9.2 serialisiert wurden. Da play 2.9.1 verwendet, gibt es eine InvalidClassException.Verwenden von Scala 2.9.2 mit Play?

Caused by: java.io.InvalidClassException: scala.Option; local class incompatible: stream classdesc serialVersionUID = 2832403187243187948, local class serialVersionUID = 7113474029577970182 

Ist es möglich, play zu zwingen, scala 2.9.2 zu verwenden? Die Konfiguration des Spielprojekts scheint sehr magisch zu sein. Es gibt nicht viel in projects/Build.scala.

import sbt._ 
import Keys._ 
import PlayProject._ 

object ApplicationBuild extends Build { 
    val appName   = "myproj" 
    val appVersion  = "1.0-SNAPSHOT" 
} 

Seit 2.9.2 ist binär-kompatibel mit 2.9.1 soll ich in der Lage sein, sie zu zwingen, verwendet werden - aber ich habe keine Ahnung, wie!

Update: Scala 2.9.2 als Abhängigkeit hinzufügen gibt mir den folgenden Fehler.

[error] {file:/home/schmmd/repo/openie-demo/}openiedemo/*:update: Version specified for dependency org.scala-lang#scala-lang;2.9.2 differs from Scala version in project (2.9.1). 

Antwort

1

Es gibt keine sbt-Plugin für Play 2.0.4 kompatibel mit Scala aktualisieren 2.0.4 2.9.2 als Spiel auf SBT 0,11 gebaut wurde. x. Abspielen! Upgrade auf Scala 2.9.2 mit SBT 0.12.x und das brach die Abwärtskompatibilität von Play 2.0.4 zu verwenden Scala 2.9.2

Allerdings gibt es einen Back-Port für Scala 2.9.3. Ändern Sie Ihre scalaVersion in 2.9.3 in Ihrer Build-Datei, um das 2.0.4 SBT-Plugin zu verwenden.

1

Sie können die Scala-Version in sbt ändern. Nicht sicher, ob es noch ein sbt Plugin für 2.9.2 gibt.

How to change Scala version for sbt project?

+0

Ich verwende nicht die Lichtkonfiguration. Die Verwendung von 'set build.scala.version 2.9.2' gibt einen Fehler:' eof erwartet, aber doppeltes Literal gefunden. – schmmd

+0

Sie müssen die Einstellungen mit einer leeren Zeile trennen – user847988

7

try Ihre Build.scala

object ApplicationBuild extends Build { 

    val appDependencies = Seq(
     // Add your project dependencies here, 
     "org.scala-lang" % "scala-compiler" % "2.9.2", 
     ... 
    ) 

    val main = PlayProject(appName, appVersion, appDependencies, mainLang = SCALA).setting(
     // Add your own project settings here 
     scalaVersion := "2.9.2" 
    ) 
} 
+0

Funktioniert das tatsächlich? Ich versuche gerade jetzt, aber ich bekomme 'unaufgelöste Abhängigkeiten play # play_2.9.2; 2.0.2: nicht gefunden' – Andrea

+1

Nein, tut es nicht. Der Grund ist, dass es kein scala-2.9.2-Build für Play in maven gibt (außer für 2.10 Snapshots). Zwei Optionen: kompiliere selbst oder füge einen Fehlerbericht ein, damit sie einen solchen Build erstellen. – jsalvata

+1

Ich habe gerade einen solchen Fehlerbericht eingereicht - mal sehen, wie sich herausstellt: https://play.lighthouseapp.com/projects/82401-play-20/tickets/837 – jsalvata

Verwandte Themen