Ich habe eine Bibliothek, die das Macro Paradise-Plugin verwendet (als Macro-Provider-Bibliothek bezeichnet). Im build.sbt
,SBT-Compiler-Plugin als transitive Abhängigkeit
addCompilerPlugin("org.scalamacros" % "paradise" % "2.0.0" cross CrossVersion.full)
Zugang zu den Makro Anmerkungen zu gewinnen.
Beim Hinzufügen der Makrobibliothek als libraryDependency
zu einem separaten Projekt (als Macro-Consumer-Projekt bezeichnet) sind die Anmerkungen vorhanden, aber die Makroimplementierung wird nie aufgerufen. Durch das Hinzufügen des Makro-Paradies-Compiler-Plugins zum Makro-Consumer-Projekt libraryDependencies
wird das Problem gelöst.
Ist es möglich, Compiler-Plugins als transitive Abhängigkeiten einzuschließen? Dies würde die Verbraucher der Makrobibliothek davon abhalten, das erforderliche Plugin hinzuzufügen.
Update # 1:
Der addCompilerPlugin
Helfer fügt die Abhängigkeit der libraryDependencies
und setzt die Abhängigkeit mit einem configuration = Some("plugin->default(compile)")
innerhalb der Makro-Anbieter Bibliothek.
die paradise
Abhängigkeit in den libraryDependencies
der Makro Anbieter Bibliothek Hinzufügen bewirkt, dass das Artefakt in dem Makro-Consumer-Projekt zu zeigen. Es fügt die Abhängigkeit nicht als Compiler-Plugin hinzu.
Update # 2:
Einstellung autoCompilerPlugins := true
im Makro-Consumer-Projekt in Verbindung mit Update # 1 das Problem nicht lösen.