【问题标题】:Scala and persistence framework version incompatibleScala和持久化框架版本不兼容
【发布时间】:2015-05-26 23:50:02
【问题描述】:

我尝试使用 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 版本的方向。非常感谢

【问题讨论】:

    标签: scala slick squeryl data-persistence


    【解决方案1】:

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

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

    【讨论】:

    • 我没有使用 maven 进行构建,所以我导入了 pom.xml 包含的所有库,现在运行良好。谢谢。
    • 顺便说一句,如果我尝试导入 scala 2.11,pm.xml 应该是什么样子?
    • org.scala-langscala-library2.11.4
    【解决方案2】:

    上一个答案应该可以解决您的问题。如果你想使用 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"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-30
      • 2020-01-19
      • 2016-06-17
      • 2010-11-19
      • 1970-01-01
      • 2021-11-16
      • 2019-08-04
      • 1970-01-01
      相关资源
      最近更新 更多