首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么错误交叉版本后缀相互冲突?

为什么错误交叉版本后缀相互冲突?
EN

Stack Overflow用户
提问于 2014-05-12 20:07:48
回答 4查看 27.5K关注 0票数 48

当我试图在sbt中编译Scala项目时,会遇到这个错误。

代码语言:javascript
复制
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

这是我的build.sbt文件:

代码语言:javascript
复制
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
  )
}

有什么建议吗?

EN

回答 4

Stack Overflow用户

发布于 2014-05-12 20:11:43

出现这些冲突是因为:

  1. 您已经将Scala版本指定为2.11
  2. 您已经为reactivemongo和poi库显式地指定了Scala版本(2.10)。

修复方法也是为这两个库使用%%操作符。

代码语言:javascript
复制
"org.reactivemongo" %% "reactivemongo" % reactiveMongoVersion,
"info.folone"       %% "poi-scala"     % foloneVersion

这就是%%操作符的目的。将声明的Scala版本(在本例中为2.11)附加到工件名称。

票数 54
EN

Stack Overflow用户

发布于 2016-02-11 12:32:49

我也遇到了同样的问题,我只是从sbt文件中删除了scalaVersion标记并修改了行。

代码语言:javascript
复制
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.6.0"

代码语言:javascript
复制
libraryDependencies += "org.apache.spark" % "spark-core_2.11" % "1.6.0"

问题就消失了。

票数 6
EN

Stack Overflow用户

发布于 2014-11-12 11:27:07

我试过使用%%,但没有起作用。我已经手动排除它使用

代码语言:javascript
复制
("org.reactivemongo" % "reactivemongo" % reactiveMongoVersion)
    .exclude("com.typesafe.akka", "akka-actor_2.10")
    .exclude("org.scalaz", "scalaz-effect")
    .exclude("org.scalaz", "scalaz-core")
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23617920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档