Mam bibliotekę, która korzysta z wtyczki makro raju (określanej jako biblioteka makra-dostawcy). W build.sbt
,Wtyczka kompilatora SBT jako zależność przejściowa
addCompilerPlugin("org.scalamacros" % "paradise" % "2.0.0" cross CrossVersion.full)
aby uzyskać dostęp do adnotacji makro.
Po dodaniu biblioteki makr jako libraryDependency
do osobnego projektu (zwanego projektem makrokonsumenta), adnotacje są obecne, ale implementacja makr nigdy nie jest wywoływana. Dodanie wtyczki Macro Paradise Compiler do projektu makro-konsumenta libraryDependencies
rozwiązuje problem.
Czy możliwe jest dołączanie wtyczek do kompilatora jako przechodniów zależności? Dzięki temu konsumenci biblioteki makr nie będą mogli dodawać wymaganej wtyczki.
Aktualizacja # 1:
addCompilerPlugin
pomocnik dodaje zależność do libraryDependencies
i ustawia zależność z configuration = Some("plugin->default(compile)")
w bibliotece makro-operatora.
Dodawanie zależność w libraryDependencies
biblioteki makro-provider paradise
powoduje artefakt, aby pokazać się w projekcie makro-konsumentów. Nie dodaje zależności jako wtyczki kompilatora.
Aktualizacja # 2:
Ustawianie autoCompilerPlugins := true
w projekcie makro-konsumentów w połączeniu z Aktualizacja # 1 nie rozwiąże problemu.