PageRenderTime 51ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

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

https://github.com/nining/Play20
Scala | 182 lines | 106 code | 72 blank | 4 comment | 0 complexity | 5caaa413606c567d37dac1ec56cfbfd7 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. lazy val defaultSettings = Seq[Setting[_]](
  36. resolvers ++= Seq(
  37. "Typesafe Releases Repository" at "http://repo.typesafe.com/typesafe/releases/",
  38. "Typesafe Snapshots Repository" at "http://repo.typesafe.com/typesafe/snapshots/"
  39. ),
  40. target <<= baseDirectory / "target",
  41. sourceDirectory in Compile <<= baseDirectory / "app",
  42. sourceDirectory in Test <<= baseDirectory / "test",
  43. confDirectory <<= baseDirectory / "conf",
  44. resourceDirectory in Compile <<= baseDirectory / "conf",
  45. scalaSource in Compile <<= baseDirectory / "app",
  46. scalaSource in Test <<= baseDirectory / "test",
  47. javaSource in Compile <<= baseDirectory / "app",
  48. javaSource in Test <<= baseDirectory / "test",
  49. distDirectory <<= baseDirectory / "dist",
  50. libraryDependencies += "play" %% "play" % play.core.PlayVersion.current,
  51. libraryDependencies += "play" %% "play-test" % play.core.PlayVersion.current % "test",
  52. parallelExecution in Test := false,
  53. testOptions in Test += Tests.Setup { loader =>
  54. loader.loadClass("play.api.Logger").getMethod("init", classOf[java.io.File]).invoke(null, new java.io.File("."))
  55. },
  56. testOptions in Test += Tests.Cleanup { loader =>
  57. loader.loadClass("play.api.Logger").getMethod("shutdown").invoke(null)
  58. },
  59. testOptions in Test += Tests.Argument("sequential", "true"),
  60. testOptions in Test += Tests.Argument("junitxml", "console"),
  61. testListeners <<= (target, streams).map((t, s) => Seq(new eu.henkelmann.sbt.JUnitXmlTestsListener(t.getAbsolutePath, s.log))),
  62. testResultReporter <<= testResultReporterTask,
  63. testResultReporterReset <<= testResultReporterResetTask,
  64. sourceGenerators in Compile <+= (confDirectory, sourceManaged in Compile, routesImport) map RouteFiles,
  65. // Adds config/routes to continious triggers
  66. watchSources <+= confDirectory map { _ / "routes" },
  67. sourceGenerators in Compile <+= (sourceDirectory in Compile, sourceManaged in Compile, templatesTypes, templatesImport) map ScalaTemplates,
  68. // Adds views template to continious triggers
  69. watchSources <++= baseDirectory map { path => ((path / "app") ** "*.scala.*").get },
  70. commands ++= Seq(shCommand, playCommand, playRunCommand, playStartCommand, h2Command, classpathCommand, licenseCommand, computeDependenciesCommand),
  71. shellPrompt := playPrompt,
  72. copyResources in Compile <<= (copyResources in Compile, playCopyAssets) map { (r, pr) => r ++ pr },
  73. mainClass in (Compile, run) := Some(classOf[play.core.server.NettyServer].getName),
  74. compile in (Compile) <<= PostCompile,
  75. dist <<= distTask,
  76. computeDependencies <<= computeDependenciesTask,
  77. playVersion := play.core.PlayVersion.current,
  78. playCommonClassloader <<= playCommonClassloaderTask,
  79. playCopyAssets <<= playCopyAssetsTask,
  80. playCompileEverything <<= playCompileEverythingTask,
  81. playPackageEverything <<= playPackageEverythingTask,
  82. playReload <<= playReloadTask,
  83. playStage <<= playStageTask,
  84. cleanFiles <+= distDirectory,
  85. ebeanEnabled := false,
  86. logManager <<= extraLoggers(PlayLogManager.default),
  87. ivyLoggingLevel := UpdateLogging.DownloadOnly,
  88. routesImport := Seq.empty[String],
  89. playIntellij <<= playIntellijTask,
  90. playHash <<= playHashTask,
  91. // Assets
  92. playAssetsDirectories := Seq.empty[File],
  93. playAssetsDirectories <+= baseDirectory / "public",
  94. resourceGenerators in Compile <+= LessCompiler,
  95. resourceGenerators in Compile <+= CoffeescriptCompiler,
  96. resourceGenerators in Compile <+= JavascriptCompiler,
  97. lessEntryPoints <<= (sourceDirectory in Compile)(base => ((base / "assets" ** "*.less") --- base / "assets" ** "_*")),
  98. coffeescriptEntryPoints <<= (sourceDirectory in Compile)(base => base / "assets" ** "*.coffee"),
  99. javascriptEntryPoints <<= (sourceDirectory in Compile)(base => ((base / "assets" ** "*.js") --- (base / "assets" ** "_*"))),
  100. lessOptions := Seq.empty[String],
  101. coffeescriptOptions := Seq.empty[String],
  102. closureCompilerOptions := Seq.empty[String],
  103. // Templates
  104. templatesImport := Seq("play.api.templates._", "play.api.templates.PlayMagic._"),
  105. templatesTypes := {
  106. case "html" => ("play.api.templates.Html", "play.api.templates.HtmlFormat")
  107. case "txt" => ("play.api.templates.Txt", "play.api.templates.TxtFormat")
  108. case "xml" => ("play.api.templates.Xml", "play.api.templates.XmlFormat")
  109. })
  110. }