Tak więc próbuję używać parboiled2 przez ostatnie kilka tygodni, jest to prawdopodobnie najtrudniejsza zależność, aby dodać do kompilacji I spotkałem się w całym moim życiu. Mój obecny jest błąd kompilacji sbt assembly
) błąd:Parboiled2 powoduje "wykrycie brakującej lub nieprawidłowej zależności podczas ładowania pliku klasy" 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] ^
Wydaje się, że jest to po prostu niemożliwe, aby Spray i Parboiled2 grać ładny razem.
Próbowałem już sbt clean
i usuwając moje katalogi target
. Mój plik build jest w zasadzie tak:
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")
My sbtVersion
jest 0.13.6, a moja wersja sbt-assembly
jest 0.12.0
Przed aktualizacją do 2.11 i uaktualniania moje zależności specs2 mam: parboiled2 and Spray cause conflicting cross-version suffixes