2012-05-09 20 views
5

Tengo un proyecto Play. Desafortunadamente estoy deserializando algunas clases de casos que fueron serializados usando scala 2.9.2. Dado que el juego usa 2.9.1, hay una InvalidClassException.Usando Scala 2.9.2 con Play?

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

¿Es posible forzar el juego para usar scala 2.9.2? La configuración del proyecto de juego parece estar haciendo mucho por arte de magia. No hay mucho en projects/Build.scala.

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

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

Desde 2.9.2 es compatible a nivel binario con 2.9.1 debería ser capaz de obligar a que sea utilizado - pero no tengo ni idea de cómo!

Actualización: agregar scala 2.9.2 como dependencia me da el siguiente error.

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

Respuesta

1

No hay ningún complemento SBT for Juega 2.0.4 compatible con Scala 2.9.2 2.0.4 como un juego se basa en SBT 0,11. X. ¡Jugar! actualizado a Scala 2.9.2 usando SBT 0.12.x y esto rompió la compatibilidad hacia atrás de Play 2.0.4 para usar Scala 2.9.2

Sin embargo, hay un puerto de respaldo para Scala 2.9.3. Cambie su scalaVersion a 2.9.3 en su archivo de compilación para usar el complemento play 2.0.4 SBT.

1

puede cambiar la versión scala en sbt. No estoy seguro de si todavía hay play sbt plugin para 2.9.2.

How to change Scala version for sbt project?

+0

No estoy usando la configuración de la luz. El uso de 'set build.scala.version 2.9.2' da un error:' eof expected pero double literal found. – schmmd

+0

necesita separar la configuración con una línea vacía – user847988

7

intenta actualizar su 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

¿Funciona realmente? Lo estoy intentando ahora mismo, pero tengo 'dependencias sin resolver play # play_2.9.2; 2.0.2: no encontrado' – Andrea

+1

No, no es así. La razón es que no hay scala-2.9.2 build para Play in maven (excepto para play 2.10 snapshots). Dos opciones: compilar tú mismo o presentar un informe de fallos para que proporcionen dicha compilación. – jsalvata

+1

Acabo de presentar un informe de error - veamos cómo resulta: https://play.lighthouseapp.com/projects/82401-play-20/tickets/837 – jsalvata

Cuestiones relacionadas