如何在Play / Scala应用程序中声明对Cassandra驱动程序的依赖?

时间:2014-10-03 14:31:42

标签: scala playframework cassandra sbt datastax-java-driver

我正在使用Play创建一个Scala应用程序,我想连接到我的Cassandra集群,但我不知道如何做到这一点。我正在尝试使用Datastax服务器,因为我阅读here这是要走的路,我已经熟悉它了,因为我还在Java中使用过它。但我对如何使用它感到困惑。

我的build.sbt文件如下所示:

name := """my-first-app"""

version := "1.0-SNAPSHOT"

lazy val root = (project in file(".")).enablePlugins(PlayScala)

scalaVersion := "2.11.1"

libraryDependencies ++= Seq(
"com.datastax.cassandra"  % "cassandra-driver-core" % "2.0.2",
jdbc,
anorm,
cache,
ws)

作为测试,我尝试使用以下代码在我的代码中导入其中一些:

import com.datastax.driver.core.Cluster;

完整代码如下所示(application.scala)

package controllers

import play.api._
import play.api.mvc._
import com.datastax.driver.core.Cluster;


object Application extends Controller {

  def index = Action {
    Ok(views.html.index("Your new application is ready."))
  }

}

但是当我运行应用程序时,我收到以下错误消息:

object datastax is not a member of package com

我不知道这里出了什么问题。我检查了另一个也使用Cassandra的项目,他们似乎也以同样的方式进行。

1 个答案:

答案 0 :(得分:3)

reloadsbt shell中执行activator或关闭会话并重新开始。它只适用于您在问题中显示的构建。

作为附加检查是否已加载具有Cassandra依赖关系的构建,请执行将显示项目依赖关系的show libraryDependencies

[play-2.3] $ show libraryDependencies
[info] List(org.scala-lang:scala-library:2.11.2, com.typesafe.play:twirl-api:1.0.2,
com.typesafe.play:play:2.3.4, com.typesafe.play:play-test:2.3.4:test,
com.typesafe.play:play-docs:2.3.4:docs, org.webjars:bootstrap:3.2.0,
org.webjars:jquery:2.1.1, org.webjars:requirejs:2.1.14,
org.webjars:rjs:2.1.15:test, org.webjars:squirejs:0.1.0:test,
com.datastax.cassandra:cassandra-driver-core:2.1.1)