Skip to content

Instantly share code, notes, and snippets.

@tango238
Created April 3, 2016 09:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tango238/fd98e70be73ae787325317b7766161cb to your computer and use it in GitHub Desktop.
Save tango238/fd98e70be73ae787325317b7766161cb to your computer and use it in GitHub Desktop.
import sbt._
import Keys._
object myBuild extends Build {
lazy val mainProject = Project(
id="slick-codegen",
base=file("."),
settings = Project.defaultSettings ++ Seq(
scalaVersion := "2.11.6",
libraryDependencies ++= List(
"com.typesafe.slick" %% "slick" % "3.0.0",
"com.typesafe.slick" %% "slick-codegen" % "3.0.0",
"org.slf4j" % "slf4j-nop" % "1.6.4",
"mysql" % "mysql-connector-java" % "5.1.38"
),
slick <<= slickCodeGenTask,
sourceGenerators in Compile <+= slickCodeGenTask
)
)
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 = "../hoge/app"
val url = "jdbc:mysql://192.168.99.100:3307/hoge?characterEncoding=UTF-8"
val username = "foo"
val password = "bar"
val jdbcDriver = "com.mysql.jdbc.Driver"
val slickDriver = "slick.driver.MySQLDriver"
val pkg = "models"
toError(r.run("slick.codegen.SourceCodeGenerator", cp.files, Array(slickDriver, jdbcDriver, url, outputDir, pkg, username, password), s.log))
val fname = outputDir + "/models/Tables.scala"
Seq(file(fname))
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment