Scala和持久性框架版本不兼容

时间:2015-05-26 23:50:03

标签: scala slick squeryl data-persistence

我尝试使用sclick和squeryl框架来使用scala进行数据持久化。我不想使用Play框架,只是使用持久性框架,但是当我导入光滑(或squeryl)jar文件时,我遇到了以下问题:

slick_2.10.1-2.0.0-M1.jar of <project_name> build path is cross-compiled with an incompatible version of Scala (2.10.1). In case this report is mistaken, this check can be disabled in the compiler preference page.   

我在Eclipse上的scala插件下使用了scala jar(2.11.6),我可以运行简单的scala应用程序。我也可以使用jdbc访问mysql dbms。导入光滑(或squeryl)jar文件时出现此问题。是因为框架不支持scala 2.11吗?是降级scala版本的解决方案吗?如果是这样,任何人都可以指点我如何降级Eclipse scala插件下的scala版本。非常感谢你

2 个答案:

答案 0 :(得分:1)

如果您使用scala 2.11,则需要将此依赖项用于光滑:

<dependency>
  <groupId>com.typesafe.slick</groupId>
  <artifactId>slick_2.11</artifactId>
  <version>3.0.0</version>
</dependency>

答案 1 :(得分:1)

上一个答案应该通过光滑解决您的问题。如果你想使用Squeryl,依赖应该是

<dependency>
    <groupId>org.squeryl</groupId>
    <artifactId>squeryl_2.11</artifactId>
    <version>0.9.6-RC3</version>
</dependency>

或者,如果你想使用0.9.5

<dependency>
    <groupId>org.squeryl</groupId>
    <artifactId>squeryl_2.11</artifactId>
    <version>0.9.5-7</version>
</dependency>

Scala中的库只与它们编译的Scala的次要版本二进制兼容。您将在这些示例中看到正确的scala版本附加到带有下划线的工件ID。

如果你有能力使用SBT而不是Maven,我会推荐它。当您引用依赖项时,SBT可以为您选择适当的版本

libraryDependencies += "org.squeryl" % "squeryl_2.11" % "0.9.6-RC3"