implicit.ly

Scala software, hot off the presses

« Back to blog

sbt-appengine 0.4.0

sbt-appengine + sbt-revolver = hot reloading dev server

One glaring omission in sbt-appengine when it was ported from @Yasushi's sbt-appengine-plugin was the ability to run development server locally from sbt shell.

sbt-appengine 0.4.0 adds a new task:

> appengine-dev-server

This (re)starts development server in the background managed by sbt-revolver. This also allows triggered redeployment:

> ~ appengine-dev-server

But wait there's more! By installing JRebel (there's a free Scala license) and setting the path as:

export JREBEL_PATH=/Applications/ZeroTurnaround/JRebel/jrebel.jar

development server launches under JRebel. This allows hot reloading:

> appengine-dev-server
> ~ package-war

You change your code, and it reflects to http://localhost:8080/ automatically. This feature was implemented by @philcali and @eed3si9n.

how to install

The use of sbt-revolver requires an additional resolver in plugins.sbt:

addSbtPlugin("com.eed3si9n" % "sbt-appengine" % "0.4.0")

resolvers ++= Seq(
  "spray repo" at "http://repo.spray.cc",
  Resolver.url("sbt-plugin-releases",
    url("http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases/"))(Resolver.ivyStylePatterns)
)

sbt-appengine is a plug-in for Simple Build Tool that automates Google App Engine deployment.