【问题标题】:How to refer to generated source files?如何引用生成的源文件?
【发布时间】:2019-04-29 19:58:55
【问题描述】:

如何引用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

【问题讨论】:

  • 您可能不想引用文件本身,而是引用其中的类/对象/特征。如果是这样,就像往常一样从他们的包中导入它们并使用它们。有什么问题?
  • 无法弄清楚如何导入包... 紧张的笑容

标签: scala sbt generated-code


【解决方案1】:

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

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

【讨论】:

  • 完美。添加package 行是有帮助的!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-22
  • 2019-07-16
  • 2021-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多