SBT plugin to build a magenta / Riff-Raff deployable artifact from Play 2.2. Note that after v2.10 there are
play tags which correspond to an upstream version of play. i.e. For Play 2.2.0 - use tag play2.2.0_1. This plugin pulls in the version of Play.
Note also that many of the names have changed in the move to Play 2.2.
You might also be interested in the related sbt-play-assethash
Why use this?
If you are writing a new Play 2 application and want to use magenta to deploy it then you will find that this plugin takes care of some basic tasks to create a suitable artifacts.zip file, this includes:
- Creating one super deluxe executable JAR file using sbt-assembly
- Bundling the JAR file and your deploy.json into an artifacts.zip
- Ensuring that common settings are provided and common conflicts are resolved
- Printing the magical TeamCity line to inform the CI server where the artifact is
How to use
The most convenient way of using this plugin is to add a source dependency in a scala file under
val playArtifactPluginVersion = "" // tag id you want to use - e.g. play2.2.0_1 lazy val plugins = Project("plugins", file(".")) .dependsOn(uri("git://github.com/guardian/sbt-play-artifact.git#" + playArtifactPluginVersion))
com.gu.deploy.MagentaArtifact.magentaArtifactSettings in your project.
import com.gu.deploy.MagentaArtifact._ val main = PlayProject(appName, appVersion, appDependencies, mainLang = SCALA) .settings(magentaArtifactSettings: _*)
deploy.json file exists in the
conf/ folder in your play project, then it will be automatically included in the artifact.zip.
Once this has been done you can use the sbt command
magenta to spit out an
artifact.zip file under
Note: This is currently not being released.
To release a new version, you can use the sbt-release command, which will test, tag, and update version numbers. It could publish artifacts too, once we're set up with the TypeSafe SBT Community Repository.