what software framework scala sbt akka spray

scala - framework - spray software



¿Por qué el error Conflicto sufijos de versión cruzada? (3)

Obtengo este error cuando intento compilar un proyecto de Scala en sbt.

Modules were resolved with conflicting cross-version suffixes in {file:/home/seven3n/caja/Flujo_de_caja/}flujo_de_caja: [error] com.typesafe.akka:akka-actor _2.11, _2.10 [error] org.scalaz:scalaz-effect _2.10, _2.11 [error] org.scalaz:scalaz-core _2.10, _2.11 [trace] Stack trace suppressed: run last *:update for the full output. [error] (*:update) Conflicting cross-version suffixes in: com.typesafe.akka:akka-actor, org.scalaz:scalaz-effect, org.scalaz:scalaz-core

Este es mi archivo build.sbt :

scalaVersion := "2.11.0" resolvers ++= Seq( "Sonatype snapshots repository" at "https://oss.sonatype.org/content/repositories/snapshots/", "Spray repository" at "http://repo.spray.io/", "Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/" ) libraryDependencies ++= { val akkaVersion = "2.3.2" val sprayVersion = "1.3.1-20140423" val sprayJsonVersion = "1.2.6" val reactiveMongoVersion = "0.11.0-SNAPSHOT" val scalaTestVersion = "2.1.5" val specs2Version = "2.3.11" val foloneVersion = "0.12-SNAPSHOT" Seq( "com.typesafe.akka" %% "akka-actor" % akkaVersion, "com.typesafe.akka" %% "akka-testkit" % akkaVersion, "io.spray" %% "spray-can" % sprayVersion, "io.spray" %% "spray-routing" % sprayVersion, "io.spray" %% "spray-testkit" % sprayVersion, "io.spray" %% "spray-json" % sprayJsonVersion, "org.reactivemongo" % "reactivemongo_2.10" % reactiveMongoVersion, "org.scalatest" %% "scalatest" % scalaTestVersion % "test", "org.specs2" %% "specs2" % specs2Version % "test", "info.folone" % "poi-scala_2.10" % foloneVersion ) }

¿Alguna sugerencia?


He intentado usar %% pero no funcionó. Lo he excluido manualmente usando

("org.reactivemongo" % "reactivemongo" % reactiveMongoVersion) .exclude("com.typesafe.akka", "akka-actor_2.10") .exclude("org.scalaz", "scalaz-effect") .exclude("org.scalaz", "scalaz-core")


Los conflictos aparecen porque:

  1. ha especificado que su versión de Scala sea 2.11
  2. ha especificado explícitamente la versión de Scala (2.10) para las bibliotecas reactivemongo y poi-scala.

La solución es usar el operador %% para esas dos bibliotecas también.

"org.reactivemongo" %% "reactivemongo" % reactiveMongoVersion, "info.folone" %% "poi-scala" % foloneVersion

Ese es el propósito del operador %% . Para agregar la versión de Scala declarada (2.11 en su caso) al nombre del artefacto.


Tuve el mismo problema y simplemente eliminé la etiqueta scalaVersion de mi archivo sbt y modifiqué la línea

libraryDependencies += "org.apache.spark" %% "spark-core" % "1.6.0"

a

libraryDependencies += "org.apache.spark" % "spark-core_2.11" % "1.6.0"

y el problema se fue.