Мне поручено переписать сценарий старого скрипта сборки для SBT. Как это бывает, наш люкс состоит из 3 модулей:Multiproject SBT создает плохую символическую ссылку scala-reflect runtime
- Веб-сервер с интерфейсом Play 2.3;
- Внутренний интерфейс для извлечения данных из других систем;
- Средний модуль, содержащий некоторые общие классы для доступа к базе данных и бизнес-логики.
Ниже отрывок из моего файла Build.scala можно найти:
val sharedSettings = Seq(
organization := <organization here>,
version := "1.2.5",
scalaVersion := "2.11.1",
libraryDependencies ++= libraries,
unmanagedJars in Compile ++= baseDirectory.value/"lib",
unmanagedJars in Compile ++= baseDirectory.value/"src",
unmanagedJars in Compile ++= baseDirectory.value/"test"
)
lazy val middle = project.settings(sharedSettings: _*)
lazy val back = project.settings(sharedSettings: _*).dependsOn(middle)
Однако, когда я пытаюсь компилировать исходники, я получаю следующее сообщение об ошибке:
bad symbolic reference to scala.reflect.runtime encountered in class file 'ValueConverter.class'. Cannot access term runtime in package scala.reflect. The current classpath may be missing a definition for scala.reflect.runtime, or ValueConverter.class may have been compiled against a version that's incompatible with the one found on the current classpath.
Исходный код представлен в следующей форме:
- назад
- SRC
- тест
- Lib
- среднего
- SRC
- тест
- Lib
- спереди
- ЦСИ
- тест
- Lib
Здесь каждый Lib папка содержит некоторые вручную поддерживаемые библиотеки (поэтому мы хотим, чтобы перейти к SBT).
Любые идеи о том, как это решить?
Вы объявляете scala-reflect как библиотечную зависимость? –
Любая причина, по которой вы используете Scala 2.11.1 вместо 2.11.7? Откуда «ValueConverter» - это одна из библиотек, поддерживаемых вручную? Вероятно, он был составлен против старой версии Scala, такой как 2.10? Ключ здесь не «отсутствует scala.reflect.runtime» (как указывает ваш заголовок), но ** плохая символическая ссылка ** –
Я попытался добавить отражение как зависимость, но, к сожалению, это не помогло. – irundaia