我创建了一个简单的项目。
“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"
答案 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