0

我尝试使用 slick 和 squeryl 框架来实现 scala 的数据持久性。我不想使用 Play 框架,而只是持久化框架,但是当我导入 slick(或 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。当我导入 slick(或 squeryl)jar 文件时会出现此问题。是因为框架不支持scala 2.11吗?降级scala版本是解决方案吗?如果是这样,任何人都可以为我指出如何在 Eclipse scala 插件下降级 scala 版本的方向。非常感谢

4

2 回答 2

1

如果您使用的是 scala 2.11,则需要将此依赖项用于 slick:

<dependency>
  <groupId>com.typesafe.slick</groupId>
  <artifactId>slick_2.11</artifactId>
  <version>3.0.0</version>
</dependency>
于 2015-05-27T02:04:38.390 回答
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"
于 2015-05-27T13:14:30.507 回答