2012-05-09 26 views
5

Tôi có một dự án Play. Thật không may tôi đang deserializing một số trường hợp lớp học đã được serialized bằng cách sử dụng scala 2.9.2. Kể từ khi chơi sử dụng 2.9.1 có một InvalidClassException.Sử dụng scala 2.9.2 với Play?

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

Có thể buộc chơi để sử dụng scala 2.9.2 không? Cấu hình dự án chơi có vẻ như đang làm rất nhiều điều kỳ diệu. Không có nhiều trong số projects/Build.scala.

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

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

Vì 2.9.2 tương thích nhị phân với 2.9.1 Tôi có thể ép buộc sử dụng - nhưng tôi không biết làm cách nào!

Cập nhật: thêm scala 2.9.2 làm phụ thuộc cung cấp cho tôi lỗi sau.

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

Trả lời

1

Không có plugin của SBT cho Chơi 2.0.4 tương thích với Scala 2.9.2 như chơi 2.0.4 được xây dựng trên SBT 0.11. x. Chơi! nâng cấp lên Scala 2.9.2 bằng cách sử dụng SBT 0.12.x và điều này đã phá vỡ tính tương thích ngược của Play 2.0.4 để sử dụng Scala 2.9.2

Tuy nhiên, có cổng sau cho Scala 2.9.3. Thay đổi scalaVersion của bạn thành 2.9.3 trong tệp Build của bạn để sử dụng plugin SBT play 2.0.4.

1

bạn có thể thay đổi phiên bản scala trong sbt. Không chắc chắn liệu có chơi sbt plugin cho 2.9.2 chưa.

How to change Scala version for sbt project?

+0

Tôi không sử dụng cấu hình ánh sáng. Sử dụng 'set build.scala.version 2.9.2' đưa ra một lỗi:' eof được mong đợi nhưng tìm thấy hai chữ '. – schmmd

+0

bạn cần phải tách cài đặt với một dòng trống – user847988

7

cố gắng để cập nhật Build.scala bạn

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

Điều này có thực sự hoạt động không? Tôi đang cố gắng ngay bây giờ, nhưng tôi nhận được 'phụ thuộc chưa được giải quyết chơi # play_2.9.2; 2.0.2: không tìm thấy' – Andrea

+1

Không. Lý do là không có scala-2.9.2 build cho Play trong maven (trừ chơi snapshot 2.10). Hai tùy chọn: biên dịch tự phát hoặc gửi báo cáo lỗi để chúng cung cấp một bản dựng như vậy. – jsalvata

+1

Tôi vừa gửi một báo cáo lỗi như vậy - hãy xem nó như thế nào: https://play.lighthouseapp.com/projects/82401-play-20/tickets/837 – jsalvata

Các vấn đề liên quan