2012-05-09 15 views
5

Ho un progetto Play. Sfortunatamente sto deserializzando alcune case case che sono state serializzate usando la scala 2.9.2. Dal momento che la riproduzione utilizza 2.9.1, esiste una InvalidClassException.Uso di scala 2.9.2 con Play?

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

È possibile forzare il gioco per utilizzare scala 2.9.2? La configurazione del progetto di gioco sembra essere molto magicamente. Non c'è molto in projects/Build.scala.

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

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

Dal 2.9.2 è compatibile a livello binario con la 2.9.1 dovrei essere in grado di forzarlo da utilizzare - ma non ho idea di come!

Aggiornamento: l'aggiunta di scala 2.9.2 come dipendenza mi dà il seguente errore.

[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). 

risposta

1

Non v'è alcun plug-SBT for Gioca 2.0.4 compatibile con Scala 2.9.2 come un gioco 2.0.4 è stato costruito su SBT 0,11. X. Giocare! aggiornato a Scala 2.9.2 usando SBT 0.12.x e questo ha rotto la compatibilità a ritroso di Play 2.0.4 per utilizzare Scala 2.9.2

Tuttavia, c'è un back-port per Scala 2.9.3. Cambia il tuo scalaVersion in 2.9.3 nel tuo file Build per usare il plugin SBT di gioco 2.0.4.

1

è possibile modificare la versione scala in sbt. Non sono sicuro se ci sia ancora il plug-in sbt per 2.9.2.

How to change Scala version for sbt project?

+0

Non sto utilizzando la configurazione della luce. L'uso di 'set build.scala.version 2.9.2' restituisce un errore:' Ef previsto ma doppio letterale trovato. – schmmd

+0

è necessario separare le impostazioni con una riga vuota – user847988

7

tenta di aggiornare il tuo 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

Funziona davvero? Sto provando in questo momento, ma ottengo che le dipendenze non risolte riproducono # play_2.9.2; 2.0.2: non trovato' – Andrea

+1

No, non lo è. La ragione è che non esiste una scala di 2.9.2 build per Play in Maven (eccetto per le istantanee di Play 2.10). Due opzioni: compila da solo o registra un bug report in modo che forniscano una tale build. – jsalvata

+1

Ho appena archiviato una segnalazione di questo tipo - vediamo come risulta: https://play.lighthouseapp.com/projects/82401-play-20/tickets/837 – jsalvata

Problemi correlati