xsbt 0.10.x с использованием xsbt-web-plugin не может найти org.eclipse.jetty во время сборки - PullRequest
0 голосов
/ 15 августа 2011

Используется для работы с sbt 0.7 с помощью веб-плагина.

Я только пытаюсь скомпилировать сервлет, но автономная встроенная пристань тоже подойдет.

значение eclipse не является членом пакета org [error] import

_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 { 

...

[править] - удалена информация о структуре каталогов

1 Ответ

3 голосов
/ 15 августа 2011

Зависимости в конфигурации jetty используются только для запуска самой Jetty и не помещаются в путь к классам для компиляции.Чтобы библиотеки Jetty были доступны в пути к классам компиляции, используйте конфигурацию compile или provided.compile помещает библиотеки во все пути к классам, а provided помещает их только в путь к классам компиляции (и тестирования).

В этом случае вам, вероятно, понадобится provided,jetty.Это делает jar-файлы Jetty доступными для веб-плагина для запуска Jetty (часть jetty), а также для размещения Jetty в вашем пути к классу компиляции (часть provided).

Например, зависимость websocketвыглядеть так:

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