我最近将scala从v2.11.8更新为2.12.1并获得了CNF例外:
java.lang.ClassNotFoundException: scala.Product$class
我看到这个类是由scala-library.jar发布的。 运行scalatest时会发生错误(项目仍然处于非常早期阶段,因此我只进行了测试)。
你知道吗?我在发行说明中找不到任何内容。答案 0 :(得分:9)
库在2.11和2.12之间不是二进制兼容的,很可能你的一个库必须用scala 2.12重新编译
答案 1 :(得分:1)
特别是,在使用$class
后缀命名的类中不再提供特征实现。您将找到有关" trait encoding"的通知。在发行说明中。
如果尝试除内置插件之外的任何依赖项,可能你想使用sbt或ammonite。有一天,他们将拥有一个整洁的平台"帮助你。
$ cat notraitclass.scala
package notraitclass
trait T {
def t: Int = 42
}
$ scalac211 notraitclass.scala
$ ls notraitclass
T.class T$class.class
$ rm -rf notraitclass
$ scalac notraitclass.scala
$ ls notraitclass
T.class