1

我正在按照教程在此处使用 Heroku 创建 scala Web 应用程序:https ://devcenter.heroku.com/articles/scala

我已经完全复制了那里的例子,但是当我运行时

sbt clean compile stage

由于以下错误,它无法编译:

[error] /home/ajcrites/dev/dyl/src/main/scala/Web.scala:1: object jboss is not a member of package org
[error] import org.jboss.netty.handler.codec.http.{HttpRequest, HttpResponse}
[error]            ^
[error] /home/ajcrites/dev/dyl/src/main/scala/Web.scala:2: object twitter is not a member of package com
[error] import com.twitter.finagle.builder.ServerBuilder
[error]            ^
[error] /home/ajcrites/dev/dyl/src/main/scala/Web.scala:3: object twitter is not a member of package com
[error] import com.twitter.finagle.http.{Http, Response}
[error]            ^
[error] /home/ajcrites/dev/dyl/src/main/scala/Web.scala:4: object twitter is not a member of package com
[error] import com.twitter.finagle.Service
[error]            ^
[error] /home/ajcrites/dev/dyl/src/main/scala/Web.scala:5: object twitter is not a member of package com
[error] import com.twitter.util.Future
[error]            ^
[error] 5 errors found

基本上,我认为这与我拥有的软件包中不可用或不可用或其他东西有关。但是,我不知道如何安装 finagle,上面的教程和https://github.com/twitter/finagle都没有说明

我该怎么做才能编译它?

4

2 回答 2

2

如果将取决于您要使用的 Scala 和 Finagle 的版本,但是要将 Finagle 添加到项目中,只需将以下内容添加到 build.sbt

libraryDependencies += "com.twitter" % "finagle-core_2.9.1" % "1.11.0" exclude("org.apache.thrift", "libthrift")

libraryDependencies += "com.twitter" % "finagle-http_2.9.1" % "1.11.0"

libraryDependencies += "com.twitter" % "finagle-serversets_2.9.1" % "1.11.0" excludeAll(
  ExclusionRule(organization = "com.sun.jdmk"),
  ExclusionRule(organization = "com.sun.jmx"),
  ExclusionRule(organization = "javax.jms")
)

这个例子大约有 3 个月的历史,所以我相信你可以获得更新版本的 Finagle。

于 2012-07-18T11:10:13.057 回答
0

我尝试了代码,它对我有用。也许看看 GitHub 上的源代码是否有效: https ://github.com/heroku/devcenter-scala

于 2012-07-18T13:39:19.667 回答