添加依赖项以播放scala.build文件时出错

时间:2012-09-20 00:15:20

标签: java scala playframework playframework-2.0 akka

我正在使用java和play framewrok开发一个akka项目。

我想用akka远程群集构建一个集群系统。

但是在将依赖项添加到build.scala文件

之后

我收到以下错误。

[info] Done updating.
[error] java.lang.NoClassDefFoundError: akka/util/FiniteDuration 

这是build.scala文件中的代码

object ApplicationBuild extends Build {

    val appName         = "akka-remote"
    val appVersion      = "1.0-SNAPSHOT"


    val appDependencies = Seq(
      "com.typesafe.akka" % "akka-actor" % "2.1-SNAPSHOT" ,
          "com.typesafe.akka" % "akka-remote" % "2.1-SNAPSHOT" ,
         "com.typesafe.akka" % "akka-kernel" % "2.1-SNAPSHOT"
    )

    val main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA).settings(
      // Add your own project settings here 
        resolvers += "Typesafe Releases" at "http://repo.typesafe.com/typesafe/releases"
    )

}

请有人帮忙解决这个问题。

2 个答案:

答案 0 :(得分:2)

我假设您使用的是Play的最新稳定版本!

播放! framework 2.0.x随Akka 2.0.2 一起提供,但不包含Akka远程。 要添加它,只需使用:

val appDependencies = Seq(
      "com.typesafe.akka" % "akka-actor" % "2.0.2" ,
      "com.typesafe.akka" % "akka-remote" % "2.0.2" ,
      "com.typesafe.akka" % "akka-kernel" % "2.0.2"
)

如果您需要记录功能,还可以添加

 "com.typesafe.akka" % "akka-slf4j" % "2.0.2"

如果您使用2.1 Akka发布Play! 2.0.x系列也许你会得到一些冲突

答案 1 :(得分:1)

Akka已经附带Play框架:https://github.com/playframework/Play20/blob/master/framework/project/Build.scala#L280

但嵌入式版本不是最新版本(适用于Play 2.0.3的Akka 2.0.2)。

如果你添加最新的Akka版本,你可能会遇到一些lib冲突。

作为您的问题,您的dependendy版本(2.1-SNAPSHOT)在Typesafe releases repo中不存在:http://repo.typesafe.com/typesafe/releases/com/typesafe/akka/akka-actor/

您必须使用Typesafe snapshots存储库:

val main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA).settings(
    resolvers += "Typesafe Releases" at "http://repo.typesafe.com/typesafe/snapshots"
)