PageRenderTime 42ms CodeModel.GetById 4ms RepoModel.GetById 0ms app.codeStats 0ms

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

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