【问题标题】:Conflicting cross-version suffixes (sbt, Scala-STM, Play-JSON)冲突的跨版本后缀(sbt、Scala-STM、Play-JSON)
【发布时间】:2013-10-15 01:35:03
【问题描述】:

我正在使用依赖于 Mandubian 的 play-json 2.2-SNAPSHOT 的 JSON 扩展。到目前为止一切正常,我有一个基于 Scala-STM 的项目。 sbt 报告以下问题:

[error] Modules were resolved with conflicting cross-version suffixes 
        in {file:folder}project:
[error]    org.scala-stm:scala-stm _2.10, _2.10.0
java.lang.RuntimeException: Conflicting cross-version suffixes in: 
  org.scala-stm:scala-stm

有没有机会深入挖掘这两个“冲突”版本的来源?我很惊讶 play-json 应该取决于 scala-stm?!

此外,有没有办法说服 sbt 闭嘴。因为显然 2.10 和 2.10.0 是等价的版本。


编辑:这似乎是一个 sbt 0.13 错误(可能与 Play-JSON 无关),因为如果我恢复到 0.12.4,项目会成功更新和构建。我仍然对 sbt 0.13 的解决方法感兴趣。

【问题讨论】:

  • 与其使用 Mandubian 的 play-json SNAPSHOT,不如直接添加这个依赖项 - "play % "play_2.10" % "2.1.0" 根据我的问题 - stackoverflow.com/questions/19436069/…
  • 我不确定这是一个错误。升级后我也看到了这个问题,但后来发现确实使用了两个不同版本的库。我猜将其降低为警告可能会很有用。

标签: scala sbt dependency-management


【解决方案1】:

您可以通过使用 exclude 删除 scala-stm 来解决此问题

 "dependencyGroupId" %% "dependencyArtifactId" % "dependencyVersion" exclude("org.scala-stm", "scala-stm_2.10.0")

别忘了做sbt clean

【讨论】:

  • 我应该在我的play 应用程序的哪里添加这个?我猜是Build.scala,但里面在哪里?
  • Build.scala 用于新创建的项目(播放 2.1.x,因为 2.2 不再使用 Build.scala)包含变量 val appDependencies,其中包含具有依赖关系的 Seq。就在里面。
  • @kompot,Play 2.2 和 2.3 可以与 build.sbtBuild.scala 一起使用。
  • exclude 究竟做了什么,当 sbt 成为白痴时,它似乎是一个包罗万象的解决方案。肯定会有一些后果吗?
【解决方案2】:

更新 Play2 2.2 - 从 0.13.0 降级到 SBT -> 0.12.4 不适用于我,但不包括在所有应用程序上使用 exclude("org.scala-stm", "scala-stm_2.10.0") - 特定依赖项我工作得很好——无论如何——我的任何依赖项都不应该与 scala-stm 有任何关系。

【讨论】:

  • 那么您是说您在使用 Play 2.2 时遇到了同样的问题?
  • 没错。当我从 Play2 2.1 切换到 2.2 时出现问题,在此之前 0.12.4 和 Play2 2.1
【解决方案3】:

如果您希望看到所有库都被拉入您的 SBT 项目,您可以使用 SBT dependency graph 插件。

使用它,您可以了解为什么要引入 scala-stm,并检查其他冲突的 scala 2.10 和 2.11 依赖项。

【讨论】:

  • 谢谢,我已经在全球范围内安装了这个插件,并且经常使用它。一个很好的建议。
  • 那就太好了。但是这个插件对我不起作用:net.virtualvoid.sbt.graph.Plugin.graphSettings 行中的“无法解析符号虚拟”
  • @jsky 该行应该在 /build.sbt 而不是 /project/build.sbt 中。你的构建是这样的吗?或者使用这里提到的替代方法:github.com/jrudolph/sbt-dependency-graph#how-to-use
猜你喜欢
  • 2013-10-27
  • 2014-08-29
  • 2014-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-24
  • 2019-01-15
相关资源
最近更新 更多