我有下面的build.sbt,运行Scala2.10.4,使用IntelliJ管理sbt,并基于sbt文件刷新项目。一切都很好,直到我添加了streams-我似乎无法使用scalaz.concurrent.Task而不遇到以下错误之一:
// build.sbt
name := "ScalazStreamsAkka"
version := "1.0"
resolvers += "Scalaz Bintray Repo" at "http://dl.bintray.com/scalaz/releases"
resolvers ++= Seq(
Resolver.sonatypeRepo("releases"),
Resolver.sonatypeRepo("snapshots")
)
libraryDependencies += "org.scalaz" %% "scalaz-core" % "7.1.0"
libraryDependencies += "org.scalaz" %% "scalaz-concurrent" % "7.1.0"
//libraryDependencies += "org.scalaz.stream" %% "scalaz-stream" % "0.5a"
libraryDependencies += "org.typelevel" %% "scodec-core" % "1.3.0"
libraryDependencies ++= Seq(
"com.chuusai" % "shapeless_2.10.4" % "2.0.0"
)使用此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如果我取消注释“scalaz-并发”,则会发生相同的错误:
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流?我正在尝试使用黄曲柳流与阿克卡演员和未来,以及可能的无形和得分王。
发布于 2014-09-09 01:41:51
我自己修的。解决方案是创建一个新的intellij项目,删除无形状+ scodec,并使akka依赖由SBT解决(通过添加一个libraryDependency +=),而不是intellij的maven组件。
https://stackoverflow.com/questions/25735180
复制相似问题