У меня есть библиотека, которая использует плагин 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 не устраняет проблему.