2015-05-26 53 views
0

我尝试使用slick和squeryl框架与scala进行数据持久化。我不想使用Play框架,但仅仅是持久性框架,但是当我导入光滑(或squeryl)jar文件,我遇到了以下问题:Scala和持久性框架版本不兼容

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. 

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

回答

1

你需要使用这个依赖于油滑:

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

我没有用maven为构建依赖,所以我进口的所有库包含在此pom.xml的,现在工作得很好。谢谢。 –

+0

顺便说一句,如果我尝试导入scala 2.11,那么pm.xml应该是什么样子? –

+0

org.scala琅 的Scala库 2.11.4 igreen

1

以前的答案应该用油滑解决您的问题。如果您想使用Squeryl,依赖关系应该是

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

或者,如果你想在Scala中使用0.9.5

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

库仅使用Scala的次要版本二进制兼容的他们被编辑反对。您将看到在这些示例中,正确的scala版本会附加到带有下划线的工件ID。

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

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