5

Play プロジェクトがあります。残念ながら、scala 2.9.2 を使用してシリアライズされたいくつかのケース クラスをデシリアライズしています。play は 2.9.1 を使用するため、InvalidClassException が発生します。

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

play に scala 2.9.2 を強制的に使用させることは可能ですか? play プロジェクトの構成は魔法のように多くのことを行っているようです。にはあまりありませんprojects/Build.scala

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

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

2.9.2 は 2.9.1 とバイナリ互換性があるため、強制的に使用できるはずですが、方法がわかりません!

更新: scala 2.9.2 を依存関係として追加すると、次のエラーが発生します。

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

3 に答える 3

7

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"
    )
}
于 2012-06-02T23:26:05.457 に答える
1

sbt で scala のバージョンを変更できます。2.9.2 用の play sbt プラグインがまだあるかどうかは不明です。

sbt プロジェクトの Scala バージョンを変更するには?

于 2012-05-10T03:08:05.933 に答える
1

Play 2.0.4 は SBT 0.11.x 上に構築されているため、Scala 2.9.2 と互換性のある Play 2.0.4 用の sbt プラグインはありません。遊ぶ!SBT 0.12.x を使用して Scala 2.9.2 にアップグレードしたため、Scala 2.9.2 を使用する Play 2.0.4 の下位互換性が失われました。

ただし、Scala 2.9.3 用のバックポートがあります。Play 2.0.4 SBT プラグインを使用するには、ビルド ファイルで scalaVersion を 2.9.3 に変更します。

于 2013-10-16T17:56:59.867 に答える