non*_*com 5 scala web-applications scala-ide
我想在Scala中开发一个相当简单的Web应用程序,使用Lift或Play框架,使用Eclipse作为环境和一些简单的Web服务器,如Jetty.然而,令我无法形容的惊讶的是,我无法将整个事情设置为一起工作.我也找不到任何明智而简单明了的如何做到这一点的指南.经过半天的搜索,我发现周围的每个人似乎都使用混合的sbt/maven,感觉可以从一个移植到另一个并手动编写项目配置文件,只是为了得到一个简单的空白项目.
创建一个空项目没有简单的简单方法.使用Java我记得只需点击几下 - 将Web服务器集成到Eclipse中,创建一个简单的Web应用程序项目并从那里运行它.在这种情况下,Scala的强大功能和简洁性在哪里?只有当我想试试Lift时才会这样.如果我想尝试播放怎么办?如果我再次走同样的道路怎么办?
有没有一个简单而完整的指南,描述如何设置环境,以便可以立即开始开发应用程序?
更新:由于Peter Gwiazda的建议,我已经与Eclipse进行了成功的Play项目集成,具有Play开箱即用的所有功能.我正在使用此设置进行开发.但是,我感兴趣的问题仍然是:与其他框架(如Lift,Scalatra等)实现类似功能的其他方法是什么?
使用Playframework 2.0,它非常简单.只需按照教程 http://www.playframework.org/documentation/2.0/ScalaTodoList
使用Play,您不需要任何其他内容 - Play已包含服务器.
恕我直言游戏比提升更容易使用.
编辑
好了,你问了它;-)
这是使用SBT Coffeescript和LESS的Scalatra的最前沿设置(参见HERE for SBT-Eclipse依赖管理)
1)使测试项目黯然失色
2)在项目根目录中创建"build.sbt"文件:
import AssemblyKeys._
import Keys._
name := "your project name"
version := "1.0"
scalaVersion := "2.9.1"
fork in run := true
resolvers ++= Seq(
"Sonatype OSS Snapshots" at "http://oss.sonatype.org/content/repositories/snapshots/",
"Typesafe repository" at "http://typesafe.artifactoryonline.com/typesafe/ivy-releases/"
)
seq(webSettings :_*)
seq(assemblySettings: _*)
seq(coffeeSettings: _*)
seq(lessSettings:_*)
(LessKeys.mini in (Compile, LessKeys.less)) := false
libraryDependencies ++= Seq(
"org.scalatra" %% "scalatra" % "2.1.0-SNAPSHOT",
"org.scalatra" %% "scalatra-scalate" % "2.1.0-SNAPSHOT",
"org.scalatra" %% "scalatra-lift-json" % "2.1.0-SNAPSHOT",
"org.scalatra" %% "scalatra-anti-xml" % "2.1.0-SNAPSHOT",
"org.scalatra" %% "scalatra-fileupload" % "2.1.0-SNAPSHOT",
"org.eclipse.jetty" % "jetty-webapp" % "8.1.0.RC2" % "test;container;provided",
"javax.servlet" % "javax.servlet-api" % "3.0.1" % "provided"
)
unmanagedBase <<= baseDirectory { base => base / "/src/main/webapp/WEB-INF/lib/" }
Run Code Online (Sandbox Code Playgroud)
3)使用plugins.sbt文件在root中创建文件夹"project":
libraryDependencies <+= sbtVersion(v => "com.github.siasia" %% "xsbt-web-plugin" % (v+"-0.2.10"))
resolvers += Resolver.url("sbt-plugin-releases", new URL("http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases/"))(Resolver.ivyStylePatterns)
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.0.0-M3")
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.7.2")
addSbtPlugin("me.lessis" % "coffeescripted-sbt" % "0.2.2")
addSbtPlugin("me.lessis" % "less-sbt" % "0.1.9")
Run Code Online (Sandbox Code Playgroud)
4)从终端/命令提示符启动sbt并启用代码重新加载:
# sbt
> ~;container:start;container:reload /
Run Code Online (Sandbox Code Playgroud)
打开Scalatra书并开始黑客攻击;-)
ORIGINAL
不得不提一下,但Scalatra,Spray或Unfiltered的微框架也可能会引起关注.
也就是说,如果您不是在寻找Lift and Play提供的厨房水槽; 如果你正在寻找厨房水槽,并希望快速滚动,Play 2.0确实看起来很不错.