包含casbah依赖项时出错

时间:2014-10-12 01:28:47

标签: mongodb scala dependencies spring-tool-suite casbah

我在开始使用casabah集成scala和mongoDb时遇到了问题。我正在使用Spring Tool Suite(STS)并导入以下jar文件:

弹簧数据的mongodb-1.6.0.RELEASE.jar

com.mongodb.jar

卡斯巴-commons_2.10-2.7.2.jar

卡斯巴-query_2.10-2.7.2.jar

约达时间-2.1.jar

SLF4J-API-1.7.7.jar

卡斯巴-gridfs_2.10-2.5.0.jar

scalaj-collection_2.10-1.4.jar

SLF4J-简单1.7.7.jar

卡斯巴-core_2.10-2.7.2.jar

蒙戈-2.10.0.jar

蒙戈-java的驾驶员2.10.0.jar

但是,我收到了一个错误。

错误:说明资源路径位置键入错误的符号引用。 Implicits.class中的签名是指com.mongodb包中的Cursor类型,它不可用。它可能在当前类路径中完全丢失,或者类路径上的版本可能与编译Implicits.class时使用的版本不兼容。

我读了几篇帖子说明问题出在mongo-java-driver中的版本,所以我也尝试使用mongo-java-driver-2.10.1.jar,但它仍然给我一个错误。

有人可以帮我解决这个错误吗?

提前多多感谢!!!

1 个答案:

答案 0 :(得分:1)

它看起来像是一个依赖问题。 Casbah基于Mongo Java驱动程序的固定版本构建,因此依赖于特定的二进制兼容版本。

Casbah版本号应该都是相同的 - 上面你主要有Casbah 2.7.2但gridfs版本错误:casbah-gridfs_2.10-2.5.0.jar

此外,Casbah 2.7.2依赖于Mongo Java Driver的2.12.2版本,但最新版本的Casbah是2.7.3,它依赖于Mongo Java Driver的2.12.3版本。

为了使这更简单,Casbah有一个all dependencies jar,其中包括最新版本的java驱动程序和所有其他相关的依赖项。或者,pom file应指向声明其依赖项的所有依赖包。 (由于Casbah被拆分为子包,casbah-commons pom列出了所有外部依赖项。)