好吧,我是SBT和Scala的新手,我试图创建一个简单的网络应用程序。 现在我挣扎着爬一些简单的HTML文件上显示http://localhost:8080 我的文件夹结构如下:SBT jetty webapp - 来自src的文件没有被复制到目标文件夹中 - 无法查看简单的HTML文件我放在那里
+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中为项目工作,并为web插件提供支持。
在主目录下的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"
)
我的意图是有一个简单的码头服务器,将服务于浏览器的请求,而另一个嵌入码头服务器来服务不同的端口上clever_dropbox_client通信。两者都必须处理相同的数据库和相同的文件夹,但除此之外,两者之间没有关系。
(关于项目的几句话:我是BIU的学生,我们得到了这个项目来创建一个类似Dropbox的应用程序,只做了一些修改,比如只存储服务器上每个文件的一个副本 - 即使它由不同名称的2个不同用户共享 - 以节省服务器存储空间,或者具有与每个帐户中的文件具有M:N关系的标记系统等等)...)
问题是,当我从sbt控制台执行jetty-run命令时,我在localhost上得到404:8080/cleverdropbox
当我试图弄清楚为什么,我发现sbt不会复制HTML/JS/CSS文件到目标文件夹。
我不希望这些文件手动复制,也不是我想我应该(将SBT能允许吗?还是会在下次重装/更新要删除的文件/编译命令?)
所以,我做错了什么?
webapp的默认文件夹应该是'src/main/webapp'而不是''' –
谢谢!!!有效!多么愚蠢的错误... –
@Mark请加上,作为答案。 –