2014-09-09 6 views
0

다음 build.sbt가 있으며 IntelliJ에서 sbt를 관리하는 스칼라 2.10.4를 실행하고 sbt 빌드 파일을 기반으로 프로젝트를 새로 고칩니다. 이이 build.sbt와신비 스칼라 NoClassDefFoundError 및 scalaz.InvariantFunctor 오류


// 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" 
) 

: 나는 다음과 같은 오류 중 하나가 발생하지 않고 scalaz.concurrent.Task을 사용할 수 있도록 수없는 것 - 내가 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 

나는 "scalaz 동시는"다음과 같은 오류가 발생 주석을 해제하는 경우 :


내가이 최신의 예제를 실행하려고하면...

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 스트림을 사용하는 방법을 알고 있나요? 나는 akka 배우와 미래뿐만 아니라 엉성한 것과 scodec과 scalaz - 스트림을 사용하려고합니다.

+0

참고 : 게시 된 build.sbt는 주석 처리되지 않은 scalaz-stream과 함께 SBT 콘솔에서 올바르게 작동합니다. 아마도 Intellij 프로젝트의 일부가 scalaz 7.0을 당길 것입니다. *? – mpilquist

답변

0

직접 고쳤습니다. 해결책은 새로운 intellij 프로젝트를 만들고, 셰이프가없는 + scodec을 제거하고 intellij의 maven 구성 요소 대신 SBT에서 libraryDependency + =를 추가하여 akka 종속성을 해결하는 것이 었습니다.