score:8
With Playframework 2.0 it's pretty simple. Just follow the tutorial http://www.playframework.org/documentation/2.0/ScalaTodoList
With Play you don't need anything else - Play already contains a server.
IMHO Play is way easier to work with than Lift.
score:1
You can have a look on my Github repo where I have a project that uses Lift and Jetty (as an embedded server). It's not well documented yet but is small enough to grasp how it's working
The server starts from com.p4g.Server object (which is called within com.p4g.Main Application object )
My Lift boostrap object is located in boostrap.liftweb package
BTW, I'm also using ScalaQuery and ScalaZ
score:2
You could use my Maven prototype for Scalatra, then simply import the maven project into Eclipse. Quite nice and you're not forced to use SBT.
score:4
Disclaimer: I'm a member of the Vaadin team.
You could also try out Vaadin which works perfectly with Scala, HOWTO here. You can also use Maven or SBT if you want. You should also check out Scaladin, the semi-official Scala wrapper for Vaadin.
Vaadin is a component based library (just one JAR with no dependencies) and it allows you to create your Ajax and HTML5 enabled UI in pure Scala without any HTML templates, RPC, XML or JavaScript.
score:6
EDIT
OK, you asked for it ;-)
Here's a bleeding edge setup for Scalatra with SBT Coffeescript & LESS (see HERE for SBT-Eclipse dependency management)
1) eclipsify a test project
2) in project root create "build.sbt" file:
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/" }
3) create folder "project" in root with plugins.sbt file:
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")
4) from terminal/command prompt start sbt & enable code reloading:
# sbt
> ~;container:start;container:reload /
Open up the Scalatra Book and start hacking ;-)
ORIGINAL
Have to mention it, but a micro framework a la Scalatra, Spray, or Unfiltered might be of interest as well.
That is, if you're not looking for the kitchen sink that Lift and Play provide; if you are looking for the kitchen sink and want to get rolling quickly, Play 2.0 does indeed look quite nice.
Source: stackoverflow.com
Related Query
- Scala + Eclipse + WebServer = A web app
- Which web framework works well using Scala on Google App Engine?
- Develop a Scala/Lift Web App using Eclipse and Tomcat
- Django, Scala Lift, or ASP.NET-MVC for high-speed web app dev?
- Scala on Google App Engine with Eclipse
- Spark App using Scala and SBT in Eclipse
- Scala: Class, Object, APP in Eclipse Scala plug in
- Maven Archetypes for Scala web app
- Spark Scala app not running in eclipse using sbt
- Having trouble creating a play framework web app in IntelliJ with scala
- Difference between using App trait and main method in scala
- Building a scala app with maven (that has java source mixed in)
- configure run in eclipse for Scala
- Choosing a Scala web framework
- Web Scraping with Scala
- Web application development on Scala
- How to initialize a new Scala project in sbt, Eclipse and github
- Errors in Eclipse for Scala project generated by Play Framework
- Scala App val initialization in main method
- Eclipse not recognizing Scala code
- Mixing Scala and Java files in an Eclipse project
- One Play 2 Framework App - use both java and scala
- noClassDefFoundError using Scala Plugin for Eclipse
- What is the current state of the Scala Eclipse plugin?
- Using Scala as a scripting language from Eclipse
- Scala perf: Why is this Scala app 30x slower than the equivalent Java app?
- Scala Error: Could not find or load main class in both Scala IDE and Eclipse
- Scala Eclipse Autocomplete Broken?
- How do I get Intellij IDEA 12.0 to work with Play Framework 2.1.0 app and Scala 2.10.0?
- Setting different spaces for tab for Java and Scala in Eclipse
More Query from same tag
- Unable to write method in Scala working both for Double and Float
- jOOQ fetching custom SQL into mapper
- Scala - Iterate a Any variable which contains List()
- Read external json file into RDD and extract specific values in scala
- How to fix the Dropping Close since the SSL connection is already closing error in spray
- Using Akka in separate library
- Scala: Restricting Ordered comparison in subclasses to the same subclass
- Scala - translate function from list-based to dataset-based
- How to convert columns of arrays[String] to columns of String
- How to (automatically) inherit settings/tasks from an sbt plugin?
- Convert RDD of Matrix to RDD of Vector
- Scala pickle type mismatch
- Get typeOf[this.type] in subclass
- Akka actors, waiting for complete initialization issue
- How do I change the contents of a ListView in Scala?
- Selecting a column from a dataset's row
- Scala Overloaded Method Needs Return Type
- Scala-Z3: How to perform member access on objects
- Is there a full specification for pattern matching possibilities of Scala?
- What is the order of AbstractModule class binding when used with Guice?
- How to tell to the compiler a function can only return subtype of a trait and not the trait itself?
- How to define schema of streaming dataset dynamically to write to csv?
- How to define a map with a specific type key and any single type value in Scala?
- How to asynchronously execute a Future that precedes another Future
- Make a class extend a generic trait in Scala
- Why makes calling error or done in a BodyParser's Iteratee the request hang in Play Framework 2.0?
- Scala Sax parser unable to process <!DOCTYPE XML>
- Scrap Your Boilerplate equivalent in Scala?
- Spark DataFrame, how to to aggregate sequence of columns?
- new-style ("inline") macros require scala.meta