首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >org.scalamacros:quasiquotes中相互冲突的跨版本后缀

org.scalamacros:quasiquotes中相互冲突的跨版本后缀
EN

Stack Overflow用户
提问于 2014-04-18 07:25:25
回答 3查看 2.3K关注 0票数 3

我试图在其中一个鱿鱼腌制中使用我的项目。我尝试拟态 宏类的构建文件,这个文件似乎也使用泡菜,但是我一直在sbt test上得到这个错误。

代码语言:javascript
复制
[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.x2.11.x交叉编译和发布我的库。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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准引用库是不兼容的。

票数 3
EN

Stack Overflow用户

发布于 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发布。

首先,尝试删除:

代码语言:javascript
复制
crossScalaVersions := Seq("2.10.4", "2.11.0-RC4")

再试一次。在此之后,将Scala版本设置为2.10.3,以便它与scala中的scala版本相匹配。

代码语言:javascript
复制
scalaVersion := "2.10.3"

编辑:关于更详细的解释,请看下面尤金的回答。

票数 1
EN

Stack Overflow用户

发布于 2015-03-20 16:41:32

据我的dependencyGraph从引入喷雾测试工具包2.10-1.3.2,specs2_2.10 v1.3.10仍然使用一个里程碑版的准引号。因此,我运行了跨版本错误问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23149443

复制
相关文章

相似问题

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