Possiedo una libreria che utilizza il plug-in macro paradise (denominato libreria macrocomputer). Nel build.sbt
,Plugin del compilatore SBT come dipendenza transitoria
addCompilerPlugin("org.scalamacros" % "paradise" % "2.0.0" cross CrossVersion.full)
per ottenere l'accesso alle annotazioni macro.
Quando si aggiunge la libreria macro come libraryDependency
a un progetto separato (denominato progetto macro-consumatore), le annotazioni sono presenti, ma l'implementazione della macro non viene mai chiamata. L'aggiunta del plug-in del compilatore di macro-paradiso al progetto macro-consumatore libraryDependencies
risolve il problema.
È possibile includere plug-in del compilatore come dipendenze transitive? Ciò libererebbe gli utenti della libreria macro dall'aggiunta del plugin richiesto.
Update # 1:
Il addCompilerPlugin
aiutante aggiunge la dipendenza al libraryDependencies
e imposta la dipendenza con un configuration = Some("plugin->default(compile)")
all'interno della libreria di macro-fornitore.
Aggiungendo il paradise
dipendenza nel libraryDependencies
della biblioteca macro-fornitore fa sì che il manufatto di presentarsi nel progetto macro-consumo. Non aggiunge la dipendenza come plugin del compilatore.
Aggiornamento # 2:
Impostazione autoCompilerPlugins := true
nel progetto macro-consumatori in collaborazione con Update # 1 non risolve il problema.