PageRenderTime 54ms CodeModel.GetById 28ms RepoModel.GetById 0ms app.codeStats 0ms

/framework/src/sbt-plugin/src/main/scala/PlaySettings.scala

https://github.com/adriaanm/playframework
Scala | 214 lines | 129 code | 81 blank | 4 comment | 7 complexity | 1737f6fd4b05ea7ec8f3f2ea35d55154 MD5 | raw file
  1. package sbt
  2. import Keys._
  3. import PlayKeys._
  4. trait PlaySettings {
  5. this: PlayCommands with PlayPositionMapper =>
  6. protected def whichLang(name: String): Seq[Setting[_]] = {
  7. if (name == JAVA) {
  8. defaultJavaSettings
  9. } else if (name == SCALA) {
  10. defaultScalaSettings
  11. } else {
  12. Seq.empty
  13. }
  14. }
  15. lazy val defaultJavaSettings = Seq[Setting[_]](
  16. templatesImport ++= Seq(
  17. "models._",
  18. "controllers._",
  19. "java.lang._",
  20. "java.util._",
  21. "scala.collection.JavaConversions._",
  22. "scala.collection.JavaConverters._",
  23. "play.api.i18n._",
  24. "play.core.j.PlayMagicForJava._",
  25. "play.mvc._",
  26. "play.data._",
  27. "play.api.data.Field",
  28. "play.mvc.Http.Context.Implicit._",
  29. "views.%format%._"),
  30. routesImport ++= Seq(
  31. "play.libs.F"
  32. ),
  33. ebeanEnabled := true
  34. )
  35. lazy val defaultScalaSettings = Seq[Setting[_]](
  36. templatesImport ++= Seq(
  37. "models._",
  38. "controllers._",
  39. "play.api.i18n._",
  40. "play.api.mvc._",
  41. "play.api.data._",
  42. "views.%format%._"))
  43. def closureCompilerSettings(optionCompilerOptions: com.google.javascript.jscomp.CompilerOptions) = Seq[Setting[_]](
  44. resourceGenerators in Compile <<= JavascriptCompiler(Some(optionCompilerOptions))(Seq(_)),
  45. resourceGenerators in Compile <+= LessCompiler,
  46. resourceGenerators in Compile <+= CoffeescriptCompiler
  47. )
  48. lazy val defaultSettings = Seq[Setting[_]](
  49. scalaVersion := play.core.PlayVersion.scalaVersion,
  50. playPlugin := false,
  51. resolvers ++= Seq(
  52. "Typesafe Releases Repository" at "http://repo.typesafe.com/typesafe/releases/",
  53. "Typesafe Snapshots Repository" at "http://repo.typesafe.com/typesafe/snapshots/"
  54. ),
  55. target <<= baseDirectory / "target",
  56. sourceDirectory in Compile <<= baseDirectory / "app",
  57. sourceDirectory in Test <<= baseDirectory / "test",
  58. confDirectory <<= baseDirectory / "conf",
  59. resourceDirectory in Compile <<= baseDirectory / "conf",
  60. scalaSource in Compile <<= baseDirectory / "app",
  61. scalaSource in Test <<= baseDirectory / "test",
  62. javaSource in Compile <<= baseDirectory / "app",
  63. javaSource in Test <<= baseDirectory / "test",
  64. distDirectory <<= baseDirectory / "dist",
  65. libraryDependencies <+= (playPlugin) { isPlugin =>
  66. val d = "play" %% "play" % play.core.PlayVersion.current
  67. if(isPlugin)
  68. d % "provided"
  69. else
  70. d
  71. },
  72. libraryDependencies += "play" %% "play-test" % play.core.PlayVersion.current % "test",
  73. parallelExecution in Test := false,
  74. fork in Test := false,
  75. testOptions in Test += Tests.Argument(TestFrameworks.Specs2, "sequential", "true"),
  76. testOptions in Test += Tests.Argument(TestFrameworks.JUnit, "junitxml", "console"),
  77. testListeners <<= (target, streams).map((t, s) => Seq(new eu.henkelmann.sbt.JUnitXmlTestsListener(t.getAbsolutePath, s.log))),
  78. testResultReporter <<= testResultReporterTask,
  79. testResultReporterReset <<= testResultReporterResetTask,
  80. sourceGenerators in Compile <+= (state, confDirectory, sourceManaged in Compile, routesImport) map RouteFiles,
  81. // Adds config directory's source files to continuous hot reloading
  82. watchSources <+= confDirectory map { all => all },
  83. sourceGenerators in Compile <+= (state, sourceDirectory in Compile, sourceManaged in Compile, templatesTypes, templatesImport) map ScalaTemplates,
  84. // Adds app directory's source files to continuous hot reloading
  85. watchSources <++= baseDirectory map { path => ((path / "app") ** "*").get },
  86. commands ++= Seq(shCommand, playCommand, playRunCommand, playStartCommand, h2Command, classpathCommand, licenseCommand, computeDependenciesCommand),
  87. shellPrompt := playPrompt,
  88. copyResources in Compile <<= (copyResources in Compile, playCopyAssets) map { (r, pr) => r ++ pr },
  89. mainClass in (Compile, run) := Some("play.core.server.NettyServer"),
  90. compile in (Compile) <<= PostCompile(scope = Compile),
  91. dist <<= distTask,
  92. computeDependencies <<= computeDependenciesTask,
  93. playVersion := play.core.PlayVersion.current,
  94. playCommonClassloader <<= playCommonClassloaderTask,
  95. playCopyAssets <<= playCopyAssetsTask,
  96. playCompileEverything <<= playCompileEverythingTask,
  97. playPackageEverything <<= playPackageEverythingTask,
  98. playReload <<= playReloadTask,
  99. playStage <<= playStageTask,
  100. cleanFiles <+= distDirectory,
  101. logManager <<= extraLoggers(PlayLogManager.default(playPositionMapper)),
  102. ivyLoggingLevel := UpdateLogging.DownloadOnly,
  103. routesImport := Seq.empty[String],
  104. playMonitoredDirectories <<= playMonitoredDirectoriesTask,
  105. playDefaultPort := 9000,
  106. playOnStarted := Nil,
  107. playOnStopped := Nil,
  108. // Assets
  109. playAssetsDirectories := Seq.empty[File],
  110. playExternalAssets := Seq.empty[(File, File => PathFinder, String)],
  111. playAssetsDirectories <+= baseDirectory / "public",
  112. requireJs := Nil,
  113. requireNativePath := None,
  114. buildRequire <<= buildRequireTask,
  115. packageBin in Compile <<= (packageBin in Compile).dependsOn(buildRequire),
  116. resourceGenerators in Compile <+= LessCompiler,
  117. resourceGenerators in Compile <+= CoffeescriptCompiler,
  118. resourceGenerators in Compile <+= JavascriptCompiler(fullCompilerOptions = None),
  119. lessEntryPoints <<= (sourceDirectory in Compile)(base => ((base / "assets" ** "*.less") --- base / "assets" ** "_*")),
  120. coffeescriptEntryPoints <<= (sourceDirectory in Compile)(base => base / "assets" ** "*.coffee"),
  121. javascriptEntryPoints <<= (sourceDirectory in Compile)(base => ((base / "assets" ** "*.js") --- (base / "assets" ** "_*"))),
  122. lessOptions := Seq.empty[String],
  123. coffeescriptOptions := Seq.empty[String],
  124. closureCompilerOptions := Seq.empty[String],
  125. incrementalAssetsCompilation := false,
  126. // Templates
  127. templatesImport := Seq("play.api.templates._", "play.api.templates.PlayMagic._"),
  128. templatesTypes := {
  129. case "html" => ("play.api.templates.Html", "play.api.templates.HtmlFormat")
  130. case "txt" => ("play.api.templates.Txt", "play.api.templates.TxtFormat")
  131. case "xml" => ("play.api.templates.Xml", "play.api.templates.XmlFormat")
  132. })
  133. }