Как ссылаться на сгенерированные исходные файлы?

Как мне обратиться к файлам, сгенерированным sourceGenerators сбт задача? Я знаю, что исходный файл хранится в 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 ответ

Решение

Генерирующий файл работает как любой обычный файл Scala, но в необычной папке, поэтому он не отслеживается git (или любым другим VCS).
Как и любой файл Scala, он должен иметь package whatever оператор в начале, из которого вы можете позже импортировать ваши классы ( import whatever._ ) Обычно имя пакета совпадает со структурой каталогов, но это не обязательно (особенно потому, что это просто сгенерированный файл).

Если у него нет пакета, все его члены, вероятно, находятся на __root__ пакет. Но это, вероятно, вызовет проблемы, я бы предложил отредактировать ваш генератор, добавив вместо него оператор пакета.

Другие вопросы по тегам