冲突的跨版本后缀(sbt,Scala-STM,Play-JSON)

时间:2013-10-08 08:12:42

标签: scala sbt dependency-management

我正在使用JSON扩展,它依赖于Mandubian的play-json 2.2-SNAPSHOT。一切正常,直到现在我有一个基于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是等效版本。


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

3 个答案:

答案 0 :(得分:21)

您可以通过删除带有排除

的scala-stm来解决此问题
 "dependencyGroupId" %% "dependencyArtifactId" % "dependencyVersion" exclude("org.scala-stm", "scala-stm_2.10.0")

不要忘记sbt clean

答案 1 :(得分:2)

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

答案 2 :(得分:2)

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

使用此功能,您可以了解为什么会引入scala-stm,还会检查其他冲突的scala 2.10和2.11依赖项。