Я строю Play! Приложение Framework с использованием Play! 2.2.1, sbt 0.13.0, а моя локальная версия scala — 2.10.3.
Я столкнулся с проблемой serialVersionUID при десериализации определенного файла, который я унаследовал от коллег для работы над этим проектом (я понятия не имею, кто (или когда) создал этот сериализованный файл).
Мое сообщение об ошибке при сборке в Play!:
Caused by: java.io.InvalidClassException: scala.collection.mutable.WrappedArray$ofRef; local class incompatible: stream classdesc serialVersionUID = 8184381945838716286, local class serialVersionUID = -8707880168089396949
После долгих поисков я нашел этот патч, который должен исправить ошибку SI-5046:
https://issues.scala-lang.org/browse/SI-5046
Я скачал исходный код scala с github для ветки 2.10.x и применил патч к WrappedArray.scala здесь: scala/src/library/scala/collection/mutable/WrappedArray.scala.
Что мне делать с этим измененным исходным кодом, чтобы я мог использовать его в своем Play! заявление?
* РЕДАКТИРОВАТЬ №1:
Я прошел по ссылкам от @Alexey Romanov
Я все еще получаю сообщение об ошибке WrappedArray$ofRef при компиляции Play, хотя теперь это другое сообщение об ошибке. Вот что я сделал:
Я перестроил дистрибутив scala с помощью ant, используя:
ant build
ant partialdist
Тогда в игре! Я указал версию scala для использования с SBT и плагинами, добавив в свой файл Build.scala следующее:
scalaVersion := "2.10.3"
autoScalaLibrary := false
scalaHome := Some(file("/path_to_my_rebuilt_scala_distribution"))
Теперь мое сообщение об ошибке:
Caused by: java.io.InvalidClassException: scala.collection.mutable.WrappedArray$ofRef; incompatible types for field bitmap$0
РЕДАКТИРОВАТЬ № 2:
Я перемещаюсь по версиям Scala, и когда я добрался до 2.9.2, ошибка WrappedArray$ofRef была исправлена путем применения патча. Теперь я получаю еще одну ошибку сериализации для другого класса:
java.io.InvalidClassException: scala.Symbol; local class incompatible: stream classdesc serialVersionUID = -3681772905693662441, local class serialVersionUID = 7747205442425187939
Я перейду к Scala 2.9.1 и посмотрю, смогу ли я добраться до содержимого файла с этой версией.
* РЕДАКТИРОВАТЬ №3:
В scala версии 2.9.1-1 я получаю другую ошибку сериализации: java.io.InvalidClassException: scala.Tuple2; local class incompatible: stream classdesc serialVersionUID = 3990034604647285925, local class serialVersionUID = 5867822941721784448
Понятия не имею, что попробовать дальше... продолжайте спускаться по версиям scala или есть другие предложения?
ant
для сборки двоичных файлов scala? (docs.scala-lang.org/scala) - person Miichi   schedule 07.01.2014