In an enterprise context, it is often necessary to deploy (maven) or publish (Ivy/SBT) artifacts in a central repository.
Here is a sample Play2 project configured to publish artifact in a local folder (~/.ivy2/publish), but you can easily adapt it to publish
to your central repository (Nexus, Artifactory, …)
importsbt._importKeys._importPlayProject._objectApplicationBuildextendsBuild{valappName="sample"valappVersion="1.0-SNAPSHOT"// Properties to add configure the new ArtifactlazyvaldistSettings=Seq[Setting[_]](// Type of the Artifact : zip// Extension of the Artifact : zipartifactindist<<=moduleName(n=>Artifact(n,"zip","zip")))++Seq(addArtifact(artifactin(Compile,dist),dist).settings:_*)valappDependencies=Seq(// Add your project dependencies here,)valmain=PlayProject(appName,appVersion,appDependencies,mainLang=SCALA,// Don't forget to add defaultSettings !settings=Defaults.defaultSettings++distSettings).settings(// Optional// Disable jar for this project (useless)publishArtifactin(Compile,packageBin):=false,// Disable scaladoc generation for this project (useless)publishArtifactin(Compile,packageDoc):=false,// Disable source jar for this project (useless)publishArtifactin(Compile,packageSrc):=false,// Where to 'publish'publishTo:=Some(Resolver.file("file",file(Path.userHome.absolutePath+"/.ivy2/publish"))),// Use Maven pattern to publishpublishMavenStyle:=true)}
Next step: to be able to “release” a Play2 project with SBT (update version in project, tag, build and publish artifacts).