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

时间:2013-05-16 07:08:02

标签: scala sbt scala-2.10

如何在使用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)

5 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

这对我有用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"

答案 4 :(得分:0)

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