如何引用生成的源文件?

时间:2019-04-29 19:58:56

标签: scala sbt generated-code

如何引用sourceGenerators sbt任务生成的文件?我知道源文件存放在target/scala-<version>/src_managed/path/to/File.Scala中,但是我不知道如何在我的项目中引用它。有什么想法吗?

/server
  /app
    /models
      Driver.scala (can't use MyGeneratedCode here)
  /project
    /src/main/scala/
      ModelGenerator.scala  (the code used to create MyGeneratedCode.scala)
    /target/scala-2.12
      /classes
      /src_managed
        /main/generated/
          MyGeneratedCode.scala

1 个答案:

答案 0 :(得分:3)

生成的文件可以像任何普通的 Scala 文件一样工作,但是在精美的文件夹中,因此git (或任何其他VCS)不会对其进行跟踪。
与任何 Scala 文件一样,该文件开头应带有package whatever语句,您可以从中随后导入类import whatever._。通常,程序包名称与目录结构匹配,但不必(特别是因为它只是生成的文件)

如果没有包,则其所有成员可能都驻留在__root__包中。但这可能会引起麻烦,我建议编辑您的生成器以添加一个package语句。