Advertisement
Guest User

Untitled

a guest
Jun 29th, 2016
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.81 KB | None | 0 0
  1. import sbt.Project.projectToRef
  2.  
  3. lazy val slickV = "3.1.1"
  4. lazy val scalaV = "2.11.8"
  5.  
  6. lazy val commonSettings = Seq(
  7. scalaVersion := scalaV,
  8. name := "playslick",
  9. version := "1.0"
  10. )
  11.  
  12. lazy val jsProjects = Seq(client)
  13.  
  14. lazy val play = (project in file("play"))
  15. .settings(commonSettings: _*)
  16. .enablePlugins(PlayScala)
  17. .settings(
  18. routesGenerator := InjectedRoutesGenerator,// Play provides two styles of routers, one expects its actions to be injected, the other, legacy style, accesses its actions statically.
  19. scalaJSProjects := jsProjects,
  20. pipelineStages := Seq(scalaJSProd),
  21. libraryDependencies ++= Seq(
  22. "com.vmunier" %% "play-scalajs-scripts" % "0.3.0",
  23. "com.lihaoyi" %% "autowire" % "0.2.5",
  24. "com.lihaoyi" %% "upickle" % "0.3.9",
  25.  
  26. "org.postgresql" % "postgresql" % "9.4.1208.jre7",
  27. "com.typesafe.slick" %% "slick" % slickV,
  28. "com.typesafe.slick" %% "slick-codegen" % slickV,
  29. "org.apache.solr" % "solr-solrj" % "6.0.0"
  30. )
  31. )
  32. .aggregate(jsProjects.map(projectToRef): _*)
  33. .dependsOn(sharedJvm, dabaser)
  34.  
  35.  
  36. lazy val client = (project in file("client"))
  37. .enablePlugins(ScalaJSPlugin, ScalaJSPlay)
  38. .settings(commonSettings:_*)
  39. .settings(
  40. persistLauncher := true,
  41. persistLauncher in Test := false,
  42. libraryDependencies ++= Seq(
  43. "com.lihaoyi" %%% "autowire" % "0.2.5",
  44. "com.lihaoyi" %%% "upickle" % "0.3.9",
  45. "com.github.japgolly.scalajs-react" %%% "core" % "0.11.0",
  46. "com.github.japgolly.scalajs-react" %%% "ext-scalaz72" % "0.11.0"
  47. ),
  48. jsDependencies ++= Seq(
  49. "org.webjars.bower" % "react" % "15.0.1"
  50. / "react-with-addons.js"
  51. minified "react-with-addons.min.js"
  52. commonJSName "React",
  53.  
  54. "org.webjars.bower" % "react" % "15.0.1"
  55. / "react-dom.js"
  56. minified "react-dom.min.js"
  57. dependsOn "react-with-addons.js"
  58. commonJSName "ReactDOM",
  59.  
  60. "org.webjars.bower" % "react" % "15.0.1"
  61. / "react-dom-server.js"
  62. minified "react-dom-server.min.js"
  63. dependsOn "react-dom.js"
  64. commonJSName "ReactDOMServer"
  65. )
  66. )
  67. .dependsOn(sharedJs)
  68.  
  69. lazy val shared = (crossProject.crossType(CrossType.Pure) in file("shared"))
  70. .settings(scalaVersion := scalaV)
  71. .jsConfigure(_ enablePlugins ScalaJSPlay)
  72.  
  73. lazy val sharedJvm = shared.jvm
  74. lazy val sharedJs = shared.js
  75.  
  76. lazy val root = (project in file("."))
  77. .settings(commonSettings: _*)
  78. .aggregate(play)
  79.  
  80. lazy val dabaser = (project in file("dabaser"))
  81. .settings(commonSettings: _*)
  82. .settings(name:="dabaser")
  83. .settings(
  84. libraryDependencies ++= Seq(
  85. "org.postgresql" % "postgresql" % "9.4.1208.jre7",
  86. "com.typesafe.slick" %% "slick" % slickV,
  87. "com.typesafe.slick" %% "slick-codegen" % slickV,
  88. "com.typesafe.slick" %% "slick-hikaricp" % slickV
  89. ),
  90. slick <<= slickCodeGenTask // register manual sbt command
  91. //sourceGenerators in Compile <+= slickCodeGenTask // register automatic code generation on every compile, remove for only manual use
  92. )
  93.  
  94. lazy val slick = TaskKey[Seq[File]]("gen-tables")
  95. lazy val slickCodeGenTask = (sourceDirectory, dependencyClasspath in Compile, runner in Compile, streams) map { (dir, cp, r, s) =>
  96. val outputDir = (dir / "main" / "scala").getPath // place generated files in sbt's managed sources folder
  97. println("outputDir", outputDir)
  98. val url = "jdbc:postgresql://192.168.99.100:5432/rnd?user=vova&password=vova" // connection info for a pre-populated throw-away, in-memory db for this demo, which is freshly initialized on every run
  99. val jdbcDriver = "org.postgresql.Driver"
  100. val slickDriver = "slick.driver.PostgresDriver"
  101. val pkg = "rnd.slick"
  102. toError(r.run("slick.codegen.SourceCodeGenerator", cp.files, Array(slickDriver, jdbcDriver, url, outputDir, pkg), s.log))
  103. val fname = outputDir + "/demo/Tables.scala"
  104. Seq(file(fname))
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement