sbt compile产生“对象casbah不是包com.mongodb的成员”

时间:2012-07-27 06:55:48

标签: mongodb scala sbt

我的目录结构:

-build.sbt
-src
--main
---scala
----MongoConnect.scala
-lib

我的build.sbt

name := "mongodb-experiments"

version := "0.1"

libraryDependencies ++= Seq(
  "com.mongodb.casbah" %% "casbah" % "3.0.0-SNAPSHOT"
)

resolvers += "Sonatype OSS Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots"

我的MongoConnect.scala计划:

import com.mongodb.casbah.Imports._
object MongoConnect{
  def main(args: Array[String]){
    println("Hello Mongo")
  }
}

为什么sbt compile会导致

  

object casbah不是com.mongodb包的成员

sbt compile
[info] Set current project to mongodb-experiments (in build file:/Users/hrishikeshparanjape/git-public/mongodb-experiments/)
[info] Updating {file:/Users/hrishikeshparanjape/git-public/mongodb-experiments/}default-fc358e...
[info] Resolving org.scala-lang#scala-library;2.9.1 ...
[info] Resolving com.mongodb.casbah#casbah_2.9.1;3.0.0-SNAPSHOT ...
[info] Resolving com.mongodb.casbah#casbah-util_2.9.1;3.0.0-SNAPSHOT ...
[info] Resolving org.slf4j#slf4j-api;1.6.0 ...
[info] Resolving org.mongodb#mongo-java-driver;2.7.2 ...
[info] Resolving org.scalaj#scalaj-collection_2.9.1;1.2 ...
[info] Resolving org.scala-tools.time#time_2.8.0;0.2 ...
[info] Resolving joda-time#joda-time;1.6 ...
[info] Resolving com.mongodb.casbah#casbah-commons_2.9.1;3.0.0-SNAPSHOT ...
[info] Resolving com.mongodb.casbah#casbah-core_2.9.1;3.0.0-SNAPSHOT ...
[info] Resolving com.mongodb.casbah#casbah-query_2.9.1;3.0.0-SNAPSHOT ...
[info] Resolving com.mongodb.casbah#casbah-gridfs_2.9.1;3.0.0-SNAPSHOT ...
[info] Done updating.
[info] Compiling 1 Scala source to /Users/hrishikeshparanjape/git-public/mongodb-experiments/target/scala-2.9.1/classes...
[error] /Users/hrishikeshparanjape/git-public/mongodb-experiments/src/main/scala/MongoConnect.scala:1: object casbah is not a member of package com.mongodb
[error] import com.mongodb.casbah.Imports._
[error]                    ^
[error] one error found
[error] {file:/Users/hrishikeshparanjape/git-public/mongodb-experiments/}default-fc358e/compile:compile: Compilation failed
[error] Total time: 7 s, completed Jul 26, 2012 11:53:35 PM

2 个答案:

答案 0 :(得分:4)

为什么使用快照存储库和旧版本的casbah?

libraryDependencies ++= Seq(
  "org.mongodb" %% "casbah" % "2.4.1"
)

resolvers += "typesafe" at "http://repo.typesafe.com/typesafe/releases/"

%%登录依赖项将选择在sbt scala版本中配置

对于3.x版本,有一个里程碑

libraryDependencies ++= Seq(
      "org.mongodb" %% "casbah" % "3.0.0-M2"
    )

正如我记得在3.x中导入应该改为:

import com.mongodb.casbah._

答案 1 :(得分:2)

将build.sbt文件修改为:

name := "mongodb-experiments"

version := "0.1"

libraryDependencies ++= Seq(
  "com.mongodb.casbah" % "casbah_2.9.0" % "2.2.0-SNAPSHOT"
)

resolvers += "Sonatype OSS Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots"

出于某种原因,3.0.0不起作用。