首页 > 解决方案 > 如何引用生成的源文件?

问题描述

如何引用sourceGeneratorssbt 任务生成的文件?我知道源文件已存入,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

标签: scalasbtgenerated-code

解决方案


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

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


推荐阅读