将Scala与MongoDB一起使用 - java.lang.NoClassDefFoundError:com / mongodb / DBObject

时间:2013-02-08 18:46:27

标签: mongodb scala

我创建了一个简单的项目。

“sbt run”工作正常。

运行“sbt package”之后出现jar文件,但它不起作用。

$ scala target/scala-2.9.2/hello_2.9.2-0.1.jar

发生以下错误:

java.lang.NoClassDefFoundError: com/mongodb/DBObject

以下是我的文件:

Hello.scala

package greeter
object Hello extends App {
    import com.mongodb.casbah.Imports._
    val mongoClient =  MongoClient()
    println("Connected to MongoDB")
    val collection = mongoClient("test")("foo")
    val doc = MongoDBObject("msg" -> "Hi from Scala!")
    collection.insert(doc)
    println("Doc inserted");
}

build.sbt

name := "hello"

mainClass := Some("greeter.Hello")

version := "0.1"

scalaVersion := "2.9.2"

libraryDependencies += "org.mongodb" % "casbah_2.9.2" % "2.5.0"

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

resolvers += "releases"  at "https://oss.sonatype.org/content/groups/scala-tools"

1 个答案:

答案 0 :(得分:1)

运行scala命令时,需要将库依赖项添加到类路径中。假设您下载了lib文件夹中的所有库jar,则需要运行:

scala -cp "lib/*" target/scala-2.9.2/hello_2.9.2-0.1.jar

在build.sbt中,使用以下设置自动下载lib_managed文件夹中的所有jar:

retrieveManaged := true