繁体   English   中英

使用 xsbt-web-plugin 的 xsbt 0.10.x 在构建期间无法找到 org.eclipse.jetty

[英]xsbt 0.10.x using xsbt-web-plugin fails to find org.eclipse.jetty during build

这曾经使用 web 插件与 sbt 0.7 一起使用。

我只是想编译一个 servlet,但独立的嵌入式码头也可以。

值 eclipse 不是 package org [错误] 导入的成员

_root_.org.eclipse.jetty.websocket.{ WebSocket, WebSocketServlet }

请注意,添加了root是因为它修复了 sbt 0.7.x 在冲突的打包路径中丢失的类似错误。

在我的build.sbt我有(可能只需要分发)

libraryDependencies ++= Seq (
    "org.eclipse.jetty" % "jetty-distribution" % "7.4.5.v20110725" % "jetty"
    , "org.eclipse.jetty" % "jetty-webapp" % "7.4.5.v20110725" % "jetty"
    , "org.eclipse.jetty" % "jetty-http" % "7.4.5.v20110725" % "jetty"
    , "org.eclipse.jetty" % "jetty-server" % "7.4.5.v20110725" % "jetty"
    , "org.eclipse.jetty" % "jetty-io" % "7.4.5.v20110725" % "jetty"
    , "org.eclipse.jetty" % "jetty-util" % "7.4.5.v20110725" % "jetty"
    , "org.eclipse.jetty" % "jetty-websocket" % "7.4.5.v20110725" % "jetty"
    , "org.eclipse.jetty" % "jetty-continuation" % "7.4.5.v20110725" % "jetty"
)

编译失败的文件有

package org.example

import _root_.javax.servlet.http._
import _root_.org.eclipse.jetty.websocket.{  WebSocket  , WebSocketServlet }

...

class Home extends WebSocketServlet { 

...

[编辑] - 删除目录结构信息

jetty配置中的依赖仅用于运行 Jetty 本身,不会放在类路径中进行编译。 要使 Jetty 库在编译类路径中可用,请使用compileprovided的配置。 compile将库放在所有类路径上,而provided仅将它们放在编译(和测试)类路径上。

在这种情况下,您可能需要provided,jetty 这使得 Jetty jars 可用于 web 插件,用于运行 Jetty( jetty部分)以及将 Jetty 放在编译类路径( provided的部分)上。

例如,websocket 依赖项如下所示:

"org.eclipse.jetty" % "jetty-websocket" % "7.4.5.v20110725" % "provided,jetty"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM