Scala用户可以申请免费的 JRebel licence ,这里不多说了
sbt.bat 加上 JRebel
@echo off
set SCRIPT_DIR=%~dp0
set JAVA_OPTS=-Dfile.encoding=UTF8 -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256m
set JREBEL_OPTS=-javaagent:"%JREBELJAR%" -Drebel.lift_plugin=true
java %JAVA_OPTS% %JREBEL_OPTS% -jar "%SCRIPT_DIR%sbt-launch-0.11.2.jar" %*
plugins.sbt
resolvers += Classpaths.typesafeResolver
libraryDependencies <+= sbtVersion(v => "com.github.siasia" %% "xsbt-web-plugin" % (v+"-0.2.10"))
build.scala
import sbt._
import Keys._
import com.github.siasia._
import PluginKeys._
import WebPlugin._
import WebappPlugin._
object BuildSettings {
lazy val buildSettings = Defaults.defaultSettings ++ webSettings ++ Seq(
organization := "net.xzlong",
version := "0.1-SNAPSHOT",
scalaVersion := "2.9.1",
// using 0.2.4+ of the sbt web plugin
scanDirectories in Compile := Nil,
// compile options
scalacOptions ++= Seq("-encoding", "UTF-8", "-deprecation", "-unchecked"),
javacOptions ++= Seq("-Xlint:unchecked", "-Xlint:deprecation"),
// show full stack traces
testOptions in Test += Tests.Argument("-oF"))
}
object Resolvers {
val typesafeRepo = "Typesafe Repo" at "http://repo.typesafe.com/typesafe/releases"
val maven2Repo = "Java.net Maven2 Repository" at "http://download.java.net/maven/2/"
}
object Dependencies {
val liftWebkit = "net.liftweb" %% "lift-webkit" % "2.4" % "compile"
val liftMapper = "net.liftweb" %% "lift-mapper" % "2.4" % "compile"
val jetty = "org.eclipse.jetty" % "jetty-webapp" % "7.5.4.v20111024" % "container"
val logback = "ch.qos.logback" % "logback-classic" % "1.0.0" % "compile"
val scalatest = "org.scalatest" %% "scalatest" % "1.6.1" % "test"
val junit = "junit" % "junit" % "4.10" % "test"
val h2database = "com.h2database" % "h2" % "1.3.164"
}
object qutaProjectBuild extends Build {
import BuildSettings._
import Resolvers._
import Dependencies._
lazy val qutaProject = Project(
"quta",
file("."),
settings = buildSettings ++ Seq(
resolvers ++= Seq(typesafeRepo, maven2Repo),
libraryDependencies ++= Seq(liftWebkit, liftMapper, jetty, logback, scalatest, junit, h2database)
))
}
sbt 控制台启动web容器, 之后 ~compile,享受编码乐趣吧,改变代码无需重启web容器
BTW 有人说可能会说 lift 官方使用sbt 0.7 运行~jetty:run 也无需重启, 工程比较小时还好, 工程大时,jetty reload 还是很耗时间的