在:org.scalamacros:quasiquetes中冲突的交叉版本后缀
我试着用在一个s。我尝试创建的文件似乎也使用了pickle,但我在在:org.scalamacros:quasiquetes中冲突的交叉版本后缀,scala,sbt,scala-pickling,scala-quasiquotes,scala-2.11,Scala,Sbt,Scala Pickling,Scala Quasiquotes,Scala 2.11,我试着用在一个s。我尝试创建的文件似乎也使用了pickle,但我在sbt测试中不断遇到此错误: [error] Modules were resolved with conflicting cross-version suffixes in dijon: [error] org.scalamacros:quasiquotes _2.10, _2.10.3 java.lang.RuntimeException: Conflicting cross-version suffixes in: o
sbt测试中不断遇到此错误
:
[error] Modules were resolved with conflicting cross-version suffixes in dijon:
[error] org.scalamacros:quasiquotes _2.10, _2.10.3
java.lang.RuntimeException: Conflicting cross-version suffixes in: org.scalamacros:quasiquotes
at scala.sys.package$.error(package.scala:27)
at sbt.ConflictWarning$.processCrossVersioned(ConflictWarning.scala:47)
at sbt.ConflictWarning$.apply(ConflictWarning.scala:30)
at sbt.Classpaths$$anonfun$61.apply(Defaults.scala:1044)
at sbt.Classpaths$$anonfun$61.apply(Defaults.scala:1044)
完整的构建日志是。我做错了什么?要解决此问题,我应该在我的系统中更改什么?我还应该能够针对
2.10.x
和2.11.x
交叉编译和发布我的库。问题是,您使用的是两个不同版本的Quasikotes模块,允许定义Scala宏。您应该确保只使用一个版本,并且此单一版本与所有使用宏的依赖项相匹配
另外,您确定scala 2.11.x版本发布了scala酸洗吗?从他们的构建文件来看,他们只发布了2.10.3
-
首先,尝试删除:
crossScalaVersions := Seq("2.10.4", "2.11.0-RC4")
然后再试一次。之后,将Scala版本设置为2.10.3
,以便与Scala酸洗中的版本匹配
scalaVersion := "2.10.3"
编辑:有关更详细的解释,请参见下面Eugene的回答。从2.0.0-M7开始,
org.scalamacros%quasikotes
以二进制形式交叉版本(即\u 2.10
)而不是完整版本(即\u 2.10.x
):。看起来您的一个依赖项使用了M7之前的Quasikotes,另一个依赖项使用了M7之后的Quasikotes
我认为除了升级使用旧的Quasikote库的所有依赖项之外,这是无法修复的,因为M7之前和M7之后的Quasikote库是不兼容的。根据我从spray-testkit_2.10-1.3.2中获取的dependencyGraph,specs2_2.10 v1.3.10仍在使用Quasikotes的里程碑版本。因此,我运行了跨版本错误问题。顺便说一句,了解这些冲突的准语言源于何处会很有趣,这样我就可以帮助仍然使用2.0.0-M3的用户迁移(这应该和将
2.0.0-M3
更改为2.0.0
一样简单),但仍然如此。谢谢您的回答。我只是这是答案