diff options
Diffstat (limited to 'build.sbt')
-rw-r--r-- | build.sbt | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/build.sbt b/build.sbt new file mode 100644 index 0000000..86ceb40 --- /dev/null +++ b/build.sbt @@ -0,0 +1,30 @@ +val slickVersion = "3.1.1" + +lazy val mainProject = Project( + id="slick-codegen-example", + base=file("."), + settings = Defaults.coreDefaultSettings ++ Seq( + scalaVersion := "2.11.8", + libraryDependencies ++= List( + "com.typesafe.slick" %% "slick" % slickVersion, + "com.typesafe.slick" %% "slick-codegen" % slickVersion, + "org.slf4j" % "slf4j-nop" % "1.7.19", + "com.h2database" % "h2" % "1.4.191" + ), + slick <<= slickCodeGenTask, // register manual sbt command + sourceGenerators in Compile <+= slickCodeGenTask // register automatic code generation on every compile, remove for only manual use + ) +) + +// code generation task +lazy val slick = TaskKey[Seq[File]]("gen-tables") +lazy val slickCodeGenTask = (sourceManaged, dependencyClasspath in Compile, runner in Compile, streams) map { (dir, cp, r, s) => + val outputDir = (dir / "slick").getPath // place generated files in sbt's managed sources folder + val url = "jdbc:h2:mem:test;INIT=runscript from 'src/main/sql/create.sql'" // connection info for a pre-populated throw-away, in-memory db for this demo, which is freshly initialized on every run + val jdbcDriver = "org.h2.Driver" + val slickDriver = "slick.driver.H2Driver" + val pkg = "demo" + toError(r.run("slick.codegen.SourceCodeGenerator", cp.files, Array(slickDriver, jdbcDriver, url, outputDir, pkg), s.log)) + val fname = outputDir + "/demo/Tables.scala" + Seq(file(fname)) +} |