Как вызвать slick-codegen из sbt в проекте на основе play-fremwork?

Я хочу сгенерировать код для доступа к [postgres] база данных через slick-codegen,

Я пытался добавить в build.sbt

val conf = com.typesafe.config.ConfigFactory.parseFile(new File("conf/application.conf")).resolve()

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 = (dir / "slick").getPath
  val url = conf.getString("slick.dbs.default.db.url")
  val jdbcDriver = conf.getString("slick.dbs.default.db.driver")
  val slickDriver = conf.getString("slick.dbs.default.driver").dropRight(1)
  val pkg = "test"
  val user = conf.getString("slick.dbs.default.db.user")
  val password = conf.getString("slick.dbs.default.db.password")
  toError(r.run("slick.codegen.SourceCodeGenerator", cp.files, Array(slickDriver, jdbcDriver, url, outputDir, pkg, user, password), s.log))
  val fname = outputDir + s"/$pkg/Tables.scala"
  Seq(file(fname))
}

и ожидать, что codegen будет вызываться перед компиляцией, например, в https://github.com/playframework/play-scala-isolated-slick-example

Но эта задача игнорируется, потому что что-то изменилось после добавления (project in file(".")).enablePlugins(PlayScala),

Как бегать codegen через sbt в этом случае?

0 ответов

Другие вопросы по тегам