2015-01-14 6 views
5

Итак, я пытаюсь использовать parboiled2 в течение последних нескольких недель, возможно, это самая сложная зависимость для добавления в сборку I натолкнулись на всю мою жизнь. Моя текущая ошибка компиляции sbt assembly) Ошибка:Parboiled2 вызывает «обнаружение отсутствующих или недопустимых зависимостей при загрузке файла класса« Prepender.class »«

[error] missing or invalid dependency detected while loading class file 'Prepender.class'. 
[error] Could not access type PrependAux in package shapeless, 
[error] because it (or its dependencies) are missing. Check your build definition for 
[error] missing or conflicting dependencies. (Re-run with `-Ylog-classpath` to see the problematic classpath.) 
[error] A full rebuild may help if 'Prepender.class' was compiled against an incompatible version of shapeless. 
[error] .../Main.scala:56: could not find implicit value for parameter prepender: spray.routing.Prepender[shapeless.HNil,shapeless.::[String,shapeless.HNil]] 
[error]  path(searchSegment/Segment)(title => get(responder(complete(
[error]      ^

кажется, что это просто невозможно сделать спрей и Parboiled2 играть хорошо вместе.

Я пробовал sbt clean и удалял мои каталоги target. Мой файл сборки в основном это:

resolvers ++= Seq(
    "spray repo" at "http://repo.spray.io" 
) 

val akkaV = "2.3.6" 
val sprayV = "1.3.2" 

libraryDependencies ++= Seq(
    // If I comment this line, everything works fine. 
    "org.parboiled" %% "parboiled" % "2.0.1" withSources() withJavadoc(), 
    // 
    "org.scalacheck" %% "scalacheck" % "1.12.1" % "test" withSources() withJavadoc(), 
    "org.specs2" %% "specs2-core" % "2.4.15" % "test" withSources() withJavadoc(), 
    "org.specs2" %% "specs2-scalacheck" % "2.4.15" % "test" withSources() withJavadoc(), 
    "org.scalaz" %% "scalaz-core" % "7.1.0" withSources() withJavadoc(), 
    // 
    "io.spray" %% "spray-json" % "1.3.1" withSources() withJavadoc(), 
    "io.spray" %% "spray-can" % sprayV withSources() withJavadoc(), 
    "io.spray" %% "spray-routing" % sprayV withSources() withJavadoc(), 
    "io.spray" %% "spray-testkit" % sprayV % "test" withSources() withJavadoc(), 
    // 
    "com.typesafe.akka" %% "akka-actor" % akkaV withSources() withJavadoc(), 
    "com.typesafe.akka" %% "akka-testkit" % akkaV % "test" withSources() withJavadoc() 
) 

scalaVersion := "2.11.4" 

javaOptions ++= Seq("-target", "1.8", "-source", "1.8") 

Мои sbtVersion является 0.13.6, и моя sbt-assembly версия 0.12.0

Перед обновлением до 2.11 и обновления своих зависимостей specs2 я получил: parboiled2 and Spray cause conflicting cross-version suffixes

ответ