我试图在其中一个鱿鱼腌制中使用我的项目。我尝试拟态 宏类的构建文件,这个文件似乎也使用泡菜,但是我一直在sbt test上得到这个错误。
[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)完整构建日志是这里。我做错了什么?为了解决这个问题,我应该在我的build.sbt中修改什么?我还应该能够针对2.10.x和2.11.x交叉编译和发布我的库。
发布于 2014-04-18 08:36:09
从2.0.0-M7开始,org.scalamacros % quasiquotes跨版本为二进制(即_2.10),而不是完整(即_2.10.x):http://scalamacros.org/news/2014/04/03/macro-paradise-2.0.0-M7.html。看起来,您的依赖项使用前M7准引号,另一个使用后置M7准引号。
除了升级使用旧的准引用库的所有依赖项之外,我认为这是无法修复的,因为前M7和PostM7准引用库是不兼容的。
发布于 2014-04-18 07:41:28
问题是,您正在使用两个不同版本的准引号模块,该模块允许定义Scala宏。您应该确保只使用单个版本,并且使用宏的所有依赖项都匹配此单一版本。
另外,您确定Scala泡菜是为Scala2.11.x发布的吗?从他们的构建文件来看,他们只为2.10.3 - https://github.com/scala/pickling/blob/2.10.x/project/Build.scala#L10发布。
首先,尝试删除:
crossScalaVersions := Seq("2.10.4", "2.11.0-RC4")再试一次。在此之后,将Scala版本设置为2.10.3,以便它与scala中的scala版本相匹配。
scalaVersion := "2.10.3"编辑:关于更详细的解释,请看下面尤金的回答。
发布于 2015-03-20 16:41:32
据我的dependencyGraph从引入喷雾测试工具包2.10-1.3.2,specs2_2.10 v1.3.10仍然使用一个里程碑版的准引号。因此,我运行了跨版本错误问题。
https://stackoverflow.com/questions/23149443
复制相似问题