It works without much nonsense, apparently. Configuration of a project is pretty basic (compared to Maven, ant, anyway):
import sbt._
class LiftProject(info: ProjectInfo) extends DefaultWebProject(info) {
val databinder = "Databinder Repository" at "
http://databinder.net/repo/"
val mavenLocal = "Local Maven Repository" at "file://"+Path.userHome+"/.m2/repository"
val scalatools_snapshot = "Scala Tools Snapshot" at "
http://scala-tools.org/repo-snapshots/"
val scalatools_release = "Scala Tools Snapshot" at "
http://scala-tools.org/repo-releases/"
val liftVersion = "2.0-scala280-SNAPSHOT"
override def libraryDependencies = Set(
"net.liftweb" % "lift-webkit" % liftVersion % "compile->default",
"org.squeryl" % "squeryl_2.8.0.Beta1-RC8" % "0.9.3" % "compile->default",
"org.mortbay.jetty" % "jetty" % "6.1.22" % "test->default",
"com.h2database" % "h2" % "1.2.121"
) ++ super.libraryDependencies
}
It has a console which has a variety of nice things:
~ compile watch the source tree and recompile each time it changes. Great for incremental changes until you're ready to test in the browser, then
jetty-start starts jetty with your webapp, and brings you back to sbt console. runs jetty in the background
jetty-stop obvious
reload reload your project definition if you change it
update pull down new dependencies. you can run this when you want rather than having to do it every time like maven
console pop a scala REPL for your project
clean obvious
compile obvious
It's pretty quick as well.
-Ross