#scala
Вопрос:
Я использую проект Java 12 / Scala 12.3 https://github.com/dominique-unruh/scala-isabelle/ для переваривания исходного кода Isabelle-HOL. Это непростая штука. Но проект компилируется и тесты выполняются правильно.
Затем я импортировал Секст-библиотеку https://github.com/nikita-volkov/sext/ для красивой печати дерева объектов Scala (так как в Scala нет внутренних методов красивой печати или дерева toJSON) с помощью добавления в build.sbt
libraryDependencies = "com.github.nikita-volkov" % "sext" % "0.2.4"
Проект компилируется, но
val ctxt = Context("Main")
println(ctxt.treeString)
выдает сообщение об ошибке:
Exception in thread "main" java.lang.NoClassDefFoundError: scala/collection/SeqLike
at sext.package$.SextAnyTreeString(package.scala:109)
at de.unruh.isabelle.Example2theory$.main(Example2theory.scala:151)
at de.unruh.isabelle.Example2theory.main(Example2theory.scala)
Caused by: java.lang.ClassNotFoundException: scala.collection.SeqLike
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 3 more
Когда я проверяю документацию по Scala 2.13 https://www.scala-lang.org/files/archive/api/2.13.5/scala/collection/ тогда действительно нет секвенции, 2.12, не так ли https://www.scala-lang.org/api/2.12.5/scala/collection/SeqLike.html
Но откуда этот раздел взялся в моем коде Scala, который компилируется под 2.13? Библиотека Sex также не относится к секстам. Как возможно, что такой класс необходим?
Комментарии:
1. Похоже, что библиотека sext очень-очень старая, не обслуживаемая, не перестроенная и не была должным образом опубликована. Я бы просто поискал альтернативу, эта библиотека просто создаст проблемы с несовместимостью версий Scala .
2. Похоже, что эта библиотека была скомпилирована на основе более старой версии Scala, возможно, вы сможете заставить ее работать, если используете Scala 2.12 (если нет, попробуйте 2.11). Но в долгосрочной перспективе вам может потребоваться попросить сопровождающих обновить его для правильной перекрестной компиляции или найти другую библиотеку.