【问题标题】:scala build with SBT cannot import java classes?使用 SBT 构建的 scala 无法导入 java 类?
【发布时间】:2012-12-06 23:21:21
【问题描述】:

我在使用 sbt 构建一个简单的 Scala 类时遇到了一些奇怪的问题。 代码很简单,我从互联网上复制来启动一个码头服务器:

object JettyEmbedded {

  def main(args: Array[String]) {
    val server = new org.eclipse.jetty.server.Server(9080)
    val context= new org.eclipse.jetty.webapp.WebAppContext()

    context.setServer(server)
    context.setContextPath("/");
    context.setWar("src/main/webapp")
    server.setHandler(context);

    try {
      server.start()
      server.join()
    } catch {
      case e: Exception => {
        e.printStackTrace()
        System.exit(1)
      }
    }
  }
}

使用 SBT 和 scala 2.9.2 编译时,出现以下错误:

[error] /src/main/scala/JettyEmbedded.scala:4: object eclipse is not a member of package org
[error] val server = new org.eclipse.jetty.server.Server(9080)

我可以在 build.sbt 中看到,我有如下依赖项:

"org.eclipse.jetty" % "jetty-webapp" % "8.1.7.v20120910" % "container",
"org.eclipse.jetty.orbit" % "javax.servlet" % "3.0.0.v201112011016" % "container;provided;test" artifacts (Artifact("javax.servlet", "jar", "jar"))

如果我只是删除这个有问题的文件并使用 container:start from sbt 运行 Jetty 服务器,它运行没有问题!

【问题讨论】:

  • 让它变得陌生,它在 Eclipse/Scala-IDE 中编译和运行良好
  • 你确定你的 sbt 类路径上有 jetty 吗?
  • 你的构建文件中有jetty作为依赖吗?
  • 我编辑了这篇文章。我想我的构建中确实有码头。
  • 你解决了吗?我遇到了同样的问题(试图完成相同的任务 - 运行嵌入式码头)

标签: scala sbt


【解决方案1】:

改变这一行:

"org.eclipse.jetty" % "jetty-webapp" % "8.1.7.v20120910" % "container",

到:

"org.eclipse.jetty" % "jetty-webapp" % "8.1.7.v20120910" % "container;provided",

解决了这个问题。

sbt 不要将“容器”类放入编译类路径中,而在 Eclipse 中则不在乎。

【讨论】:

  • 我不得不退出 sbt 并再次运行它。谢谢!现在工作
【解决方案2】:

您的 build.sbt 文件中似乎没有正确的码头依赖项。

libraryDependencies ++= Seq(
  "org.eclipse.jetty" % "jetty-server" % "8.1.7.v20120910",
  "org.eclipse.jetty" % "jetty-webapp" % "8.1.7.v20120910"
)

【讨论】:

  • 你的依赖还是错误的。尝试用我的答案中的替换你的构建。
  • 他们到底有什么问题?你能解释一下区别吗?我有同样的问题
  • 他试图使用“jetty-server”依赖项而不在 Maven 中引用它。
猜你喜欢
  • 1970-01-01
  • 2013-05-24
  • 1970-01-01
  • 1970-01-01
  • 2015-06-15
  • 2018-08-19
  • 2016-12-14
  • 1970-01-01
  • 2018-03-05
相关资源
最近更新 更多