SBT jetty webapp - файлы из src не копируются в целевую папку - не могут просматривать простые HTML-файлы, которые я там разместил - PullRequest
0 голосов
/ 18 августа 2011

Что ж, я новичок в SBT и Scala и пытаюсь создать простое веб-приложение.сейчас я изо всех сил пытаюсь заставить некоторые простые HTML-файлы отображаться на http://localhost:8080 моя структура папок выглядит следующим образом:

+clever_dropbox_server
|-+project
| |-+boot
| | |-...
| |-+plugins
| | |-build.sbt
| | |-...
| |-+target
| | |-...
|-+src
| |-+main
| | |-+scala
| | |-+webapps
| | | |-+cleverdropbox
| | | | |-+css
| | | | | |-style.css
| | | | |-+images
| | | | | |-...
| | | | |-+js
| | | | | |-...
| | | | |-+WEB-INF
| | | | | |-+classes
| | | | |-index.html
| | | | |-...
| |-+test
| | |-...
|-+target
| |-...
|-build.sbt

хорошо, файл build.sbt в разделе плагинов содержит следующее:

//**********************
//* SBT Eclipse plugin *
//**********************

resolvers += {
  val typesafeRepoUrl = new java.net.URL("http://repo.typesafe.com/typesafe/releases")
  val pattern = Patterns(false, "[organisation]/[module]/[sbtversion]/[revision]/[type]s/[module](-[classifier])-[revision].[ext]")
  Resolver.url("Typesafe Repository", typesafeRepoUrl)(pattern)
}

libraryDependencies <<= (libraryDependencies, sbtVersion) { (deps, version) => 
  deps :+ ("com.typesafe.sbteclipse" %% "sbteclipse" % "1.3-RC2" extra("sbtversion" -> version))
}

//******************
//* SBT Web plugin *
//******************

resolvers += "Web plugin repo" at "http://siasia.github.com/maven2"    

//Following means libraryDependencies += "com.github.siasia" %% "xsbt-web-plugin" % "0.1.1-<sbt version>""
libraryDependencies <+= sbtVersion(v => "com.github.siasia" %% "xsbt-web-plugin" % ("0.1.1-"+v))

, поэтому у меня будет возможность работать над проектом в eclipse и для поддержки веб-плагинов.

Файл build.sbt в главном каталоге содержит:

name := "clever_dropbox_server"

version := "0.1"

organization := "GilaDana"

scalaVersion := "2.9.0-1"


seq(webSettings: _*)


resolvers += "Java.net Maven2 Repository" at "http://download.java.net/maven/2/"


// Customize any further dependencies as desired
libraryDependencies ++= Seq(
    "org.mortbay.jetty" % "jetty" % "6.1.22" % "jetty,test", 
    "org.eclipse.jetty" % "jetty-server" % "7.4.5.v20110725",// % "compile,jetty",
    "org.eclipse.jetty" % "jetty-servlet" % "7.4.5.v20110725",// % "compile,jetty",
    "javax.ws.rs" % "jsr311-api" % "1.1.1",
    "com.sun.jersey" % "jersey-server" % "1.8",
    "com.sun.jersey" % "jersey-core" % "1.8",
    "com.sun.jersey" % "jersey-json" % "1.8",
    "org.scala-tools.testing" % "specs_2.9.0" % "1.6.8" % "test", // For specs.org tests
    "javax.servlet" % "servlet-api" % "2.5" % "provided->default"
)

Мое намерение состоит в том, чтобы иметь один простой сервер Jetty, который будет обслуживать запросы браузера, и еще один встроенный сервер Jetty, который будет обслуживать другой порт для связи clever_dropbox_client.оба должны были иметь дело с одной и той же базой данных и одной и той же папкой с файлами, но кроме этого между ними нет никакой связи.

(несколько слов о проекте: я учусь в BIU,и мы получили этот проект для создания приложения, подобного dropbox, только с несколькими изменениями, такими как сохранение только одной копии из каждого файла на сервере - даже если оно совместно используется двумя разными пользователями под разными именами - для сохранения памяти сервера, илиналичие системы тегов с отношением M: N к файлам в каждой учетной записи и т. д. ...)

проблема в том, что когда я выполняю команду jetty-run из консоли sbt, я получаю 404 наlocalhost: 8080 / cleverdropbox

когда я попытался выяснить, почему, я обнаружил, что sbt не будет копировать файлы HTML / JS / CSS в целевую папку.

Я бы не хотелкопировать файлы вручную, и я не думаю, что я должен (sbt разрешит это делать? или файлы будут удалены при следующей команде перезагрузки / обновления / компиляции?)

, так что я делаю неправильно?

1 Ответ

1 голос
/ 18 августа 2011

Как указано в комментарии, sbt будет искать ваши HTML-файлы в папке src/main/webapp без ваших конечных символов "*".

...