神秘的Scalaz NoClassDefFoundError和Scalaz.InvariantFunctor错误
我有以下build.sbt,正在运行Scala 2.10.4,IntelliJ管理sbt,并基于sbt构建文件刷新项目。在添加scalaz streams之前,一切都很正常——我似乎无法在使用神秘的Scalaz NoClassDefFoundError和Scalaz.InvariantFunctor错误,scala,intellij-idea,akka,scalaz,scalaz-stream,Scala,Intellij Idea,Akka,Scalaz,Scalaz Stream,我有以下build.sbt,正在运行Scala 2.10.4,IntelliJ管理sbt,并基于sbt构建文件刷新项目。在添加scalaz streams之前,一切都很正常——我似乎无法在使用scalaz.concurrent.Task时不遇到以下错误之一: 使用此build.sbt时,会发生以下错误: scala> import scalaz.concurrent.Task import scalaz.concurrent.Task scala> Task java.lang
scalaz.concurrent.Task
时不遇到以下错误之一:
使用此build.sbt时,会发生以下错误:
scala> import scalaz.concurrent.Task
import scalaz.concurrent.Task
scala> Task
java.lang.IncompatibleClassChangeError: Class scalaz.concurrent.Task$$anon$1 does not implement the requested interface scalaz.InvariantFunctor
scala> import scalaz.concurrent.Task
import scalaz.concurrent.Task
scala> Task
java.lang.IncompatibleClassChangeError: Class scalaz.concurrent.Task$$anon$1 does not implement the requested interface scalaz.InvariantFunctor`
如果我取消注释“scalaz concurrent”,则会发生相同的错误:
scala> import scalaz.concurrent.Task
import scalaz.concurrent.Task
scala> Task
java.lang.IncompatibleClassChangeError: Class scalaz.concurrent.Task$$anon$1 does not implement the requested interface scalaz.InvariantFunctor
scala> import scalaz.concurrent.Task
import scalaz.concurrent.Task
scala> Task
java.lang.IncompatibleClassChangeError: Class scalaz.concurrent.Task$$anon$1 does not implement the requested interface scalaz.InvariantFunctor`
如果我尝试运行这些最新的示例
val ones: Process[Task,Int] = Process.constant(1)
/* A stream which emits `0, 1, 2 ... 99`. */
val zeroTo100: Process[Task,Int] = Process.range(0,100)
同样的错误也会发生
其他时候,我遇到了以下错误:
scala> val expensiveInt: Task[Int] = Task { 41 + 1 }
java.lang.NoClassDefFoundError: Could not initialize class scalaz.concurrent.Task$
有人知道我如何使用scalaz streams而不会遇到这些奇怪的错误吗?
我正在尝试将scalaz streams与akka演员和未来以及Shapess和scodec一起使用。我自己修复了它。解决方案是创建一个新的intellij项目,删除shapeless+scodec,并使akka依赖项由SBT(通过添加libraryDependency+=)而不是intellij的maven组件来解析。注意:未注释scalaz流的posted build.SBT可以在SBT控制台上正常工作。也许Intellij项目中的某些东西正在引入scalaz 7.0。*?