Ссылка на файл из src в sbt - PullRequest
0 голосов
/ 25 апреля 2018

Я пытаюсь изменить кодер slick для использования моего SourceCodeGenerator.Поэтому я создал собственный класс с расширением SourceCodeGenerator и поместил его в app/utils, где app - это мой каталог с исходными текстами.Я выполнил задачу sbt и сослался на этот класс (util.MySourceCodeGenerator) в build.sbt, но получаю ужас

[error] (run-main-7) java.lang.ClassNotFoundException: utils.MySourceCodeGenerator
[error] java.lang.ClassNotFoundException: utils.MySourceCodeGenerator
[error]     at java.lang.ClassLoader.findClass(ClassLoader.java:530)
[error]     at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
[error]     at sbt.internal.inc.classpath.ClasspathFilter.loadClass(ClassLoaders.scala:70)
[error]     at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
[error]     at java.lang.Class.forName0(Native Method)
[error]     at java.lang.Class.forName(Class.java:348)
[error]     at sbt.Run.getMainMethod(Run.scala:98)
[error]     at sbt.Run.run0(Run.scala:86)
[error]     at sbt.Run.execute$1(Run.scala:65)

при выполнении своей пользовательской задачи:

sourceGenerators in Compile += slick.taskValue // Automatic code generation on build
lazy val slick = taskKey[Seq[File]]("Generate Tables.scala")

slick := {
  val dir = (scalaSource in Compile) value
  val outputDir = dir
  val jdbcDriver = "org.postgresql.Driver"
  val slickDriver = "slick.jdbc.PostgresProfile"
  val pkg = "models"

  val cp = (dependencyClasspath in Compile) value
  val s = streams value

  runner.value.run("utils.MySourceCodeGenerator",
    cp.files,
    Array(slickDriver, jdbcDriver, url, outputDir.getPath, pkg, user, password),
    s.log).failed foreach (sys error _.getMessage)

  val file = outputDir / pkg / "Tables.scala"

  Seq(file)
}

DoМне нужно изменить структуру моего проекта?Для справки я в игре!рамки, и я следую этому по существу https://www.playframework.com/documentation/2.6.x/Anatomy

...