Я пытаюсь изменить кодер 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