2016-04-30 1 views
1

В настоящее время я пытаюсь понять концепцию макросов в Scala. Макросы не могут использоваться в блоке компиляции, в котором они были определены.Могут ли быть отдельные единицы компиляции в рамках одного проекта Scala?

Чтобы решить эту проблему, я сделал это, как @adamw в this примере, то есть, я использовал SBT, чтобы создать проект, содержащие два суб-проектов - один, содержащие макросы, другие содержат примеры, которые используют макросы ,

Однако, хотя это работает, я чувствую, что это не чистый подход. В конце концов, не должны ли макросы быть частью проекта, которые они принадлежат логически? Таким образом, возможно ли иметь определения макросов, а также код, который использует их в одном проекте, при создании отдельных единиц компиляции в рамках одного проекта sbt?

спасибо, что заблаговременно!

ответ

2

Было обсуждено использование области конфигурации Macro, которая добавила бы дополнительную задачу macro:compile.

Это позволит разместить макроисточники в src/macro/scala и сделать macro:compile зависимостью для compile.

С такой конфигурационной областью, вы могли бы иметь макросы и регулярные источники в одном проекте. Тем не менее, это не настройка по умолчанию в sbt, и вам будет нужно добавить себя. Я забываю точное заклинание.

Смежные вопросы