§About SBT Settings
§About sbt settings
The sbt build script defines settings for your project. You can also define you own custom settings for your project, as described in the sbt documentation .
To set a basic setting, use the :=
operator:
val main = PlayProject(appName, appVersion, appDependencies).settings(
confDirectory := "myConfFolder"
)
§Default settings for Java applications
Play 2.0 defines a default set of settings suitable for Java-based applications. To enable them add the defaultJavaSettings
set of settings to your application definition:
val main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA)
These default settings mostly define the default imports for generated templates. For example, it imports java.lang.*
, so types like Long
are the Java ones by default instead of the Scala ones. It also imports java.util.*
so the default collection library will be the Java one.
§Default settings for Scala applications
Play 2.0 defines a default set of settings suitable for Scala-based applications. To enable them add the defaultScalaSettings
set of settings to your application definition:
val main = PlayProject(appName, appVersion, appDependencies, mainLang = SCALA)
These default settings define the default imports for generated templates (such as internationalized messages, and core APIs).
§Play project settings with their default value
When you define your sbt project using PlayProject
instead of Project
, you will get a default set of settings. Here is the default configuration:
resolvers ++= Seq(
"Maven Repository" at "http://repo1.maven.org/maven2/",
"Typesafe Repository" at "http://repo.typesafe.com/typesafe/releases/"
),
target <<= baseDirectory / "target",
sourceDirectory in Compile <<= baseDirectory / "app",
confDirectory <<= baseDirectory / "conf",
scalaSource in Compile <<= baseDirectory / "app",
javaSource in Compile <<= baseDirectory / "app",
distDirectory <<= baseDirectory / "dist",
libraryDependencies += "play" %% "play" % play.core.PlayVersion.current,
sourceGenerators in Compile <+= (confDirectory, sourceManaged in Compile) map RouteFiles,
sourceGenerators in Compile <+= (sourceDirectory in Compile, sourceManaged in Compile, templatesTypes, templatesImport) map ScalaTemplates,
commands ++= Seq(
playCommand, playRunCommand, playStartCommand, playHelpCommand, h2Command, classpathCommand, licenseCommand, computeDependenciesCommand
),
shellPrompt := playPrompt,
copyResources in Compile <<= (copyResources in Compile, playCopyResources) map { (r, pr) => r ++ pr },
mainClass in (Compile, run) := Some(classOf[play.core.server.NettyServer].getName),
compile in (Compile) <<= PostCompile,
dist <<= distTask,
computeDependencies <<= computeDependenciesTask,
playCopyResources <<= playCopyResourcesTask,
playCompileEverything <<= playCompileEverythingTask,
playPackageEverything <<= playPackageEverythingTask,
playReload <<= playReloadTask,
playStage <<= playStageTask,
cleanFiles <+= distDirectory.identity,
resourceGenerators in Compile <+= LessCompiler,
resourceGenerators in Compile <+= CoffeescriptCompiler,
resourceGenerators in Compile <+= JavascriptCompiler,
playResourceDirectories := Seq.empty[File],
playResourceDirectories <+= baseDirectory / "conf",
playResourceDirectories <+= baseDirectory / "public",
templatesImport := Seq("play.api.templates._", "play.api.templates.PlayMagic._"),
templatesTypes := {
case "html" => ("play.api.templates.Html", "play.api.templates.HtmlFormat")
case "txt" => ("play.api.templates.Txt", "play.api.templates.TxtFormat")
case "xml" => ("play.api.templates.Xml", "play.api.templates.XmlFormat")
}