У меня есть библиотека, которая использует плагин macro paradise (называемый библиотекой макро-провайдера). В build.sbt,
addCompilerPlugin("org.scalamacros" % "paradise" % "2.0.0" cross CrossVersion.full)
чтобы получить доступ к макрокомандам.
При добавлении библиотеки макросов в качестве libraryDependency в отдельный проект (называемый проектом "макро-потребитель" ) аннотации присутствуют, но реализация макроса никогда не вызывается. Добавление плагина компилятора макроса в проект макроэкономики libraryDependencies решает проблему.
Можно ли включить плагины компилятора в качестве транзитивных зависимостей? Это освободило бы пользователей библиотеки макросов от добавления необходимого плагина.
Обновление # 1:
Помощник addCompilerPlugin добавляет зависимость к libraryDependencies и устанавливает зависимость с configuration = Some("plugin->default(compile)") в библиотеке макроустройства.
Добавление зависимости paradise в libraryDependencies библиотеки макроустройства приводит к тому, что артефакт будет отображаться в проекте макропользователя. Он не добавляет зависимость как плагин компилятора.
Обновление # 2:
Настройка autoCompilerPlugins := true в проекте macro-consumer в сочетании с Обновить # 1 не устраняет проблему.