【问题标题】:How can I use library which is built using 2.9.2 in project which is built using 2.10.1?如何在使用 2.10.1 构建的项目中使用使用 2.9.2 构建的库?
【发布时间】:2013-05-16 07:08:01
【问题描述】:

如何在使用 2.10.1 构建的项目中针对 2.9.2 使用库构建?

特别是我正在尝试使用 salat 并得到以下异常

sbt.ResolveException: unresolved dependency: com.novus#salat_2.10;1.9.2-SNAPSHOT: not found
    at sbt.IvyActions$.sbt$IvyActions$$resolve(IvyActions.scala:214)
    at sbt.IvyActions$$anonfun$update$1.apply(IvyActions.scala:122)
    at sbt.IvyActions$$anonfun$update$1.apply(IvyActions.scala:121)
    at sbt.IvySbt$Module$$anonfun$withModule$1.apply(Ivy.scala:114)
    at sbt.IvySbt$Module$$anonfun$withModule$1.apply(Ivy.scala:114)
    at sbt.IvySbt$$anonfun$withIvy$1.apply(Ivy.scala:102)
    at sbt.IvySbt.liftedTree1$1(Ivy.scala:49)
    at sbt.IvySbt.action$1(Ivy.scala:49)
    at sbt.IvySbt$$anon$3.call(Ivy.scala:58)

【问题讨论】:

标签: scala sbt scala-2.10


【解决方案1】:

你不能。主要版本的 Scala 是二进制不兼容的。

【讨论】:

    【解决方案2】:

    你可以。只需使用 OSGi。 Scala 2.9.x 与一个捆绑包一起使用,Scala 2.10.x 与另一个捆绑包一起使用。在单个执行环境中处理多个不兼容的二进制依赖项是创建 OSGi 的情况之一。 Scala jar 已经打包成包。一切准备就绪。

    【讨论】:

      【解决方案3】:

      您似乎使用的是针对 2.10 构建的库版本。不过,您正在使用的工件似乎不正确。在您的build.sbt 中尝试将"com.novus" %% "salat" % "1.9.2-SNAPSHOT" 更改为"com.novus" %% "salat-core" % "1.9.2-SNAPSHOT"。这是可用于 2.10 的工件的 full list

      【讨论】:

      • 我仍然明白这个:( sbt.ResolveException: unresolved dependency: com.novus#salat-core_2.10;1.9.2-SNAPSHOT: not found
      • @ruslan 您的解析器中有 sonatype 快照存储库吗? resolvers += "Sonatype OSS Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots"
      • 我没有,但它也不能用它。另外 sbt 0.11.2+ 不需要吗?我正在使用 sbt 0.12.1
      • 这很奇怪。我已经建立了一个测试项目,它工作得很好。在这里:gist.github.com/folone/19d8dfe06af578723d05你可能是在一个不允许访问 sonatype nexus 的代理后面吗?
      【解决方案4】:

      这对我有用http://pastebin.com/yy6tGYDE

      1. 添加"Sonatype OSS Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots"
      2. 删除"org.mongodb" %% "casbah" % "2.6.0"可能的冲突,salat 1.9.2-SNAPSHOT 使用 2.5.0
      3. "com.novus" % "salat-core" % "1.9.2-SNAPSHOT" 更改为"com.novus" %% "salat" % "1.9.2-SNAPSHOT"

      【讨论】:

        【解决方案5】:

        您必须针对 scala 2.10 重新编译该库,因为 scala 版本与每个主要版本都是二进制不兼容的。从 2.9 到 2.10。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-11-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多