scala编译器插件开发最佳实践

scala compiler plugin development best practice

迭代我的编译器插件的代码,我在每次编译后将我的编译器插件发布到我的本地常春藤存储库(通过 publishLocal),然后 运行 我的另一个项目依赖这个插件是通过 addCompilerPlugin 定义的。有没有更简洁的编译器插件开发实践?

当然,我可以将两者聚合成一个多项目构建定义。但是学习更多用于迭代插件代码的轻量级实践可能会很好...

我是否可以至少依赖编译器插件而不将它变成一个库?从 addCompilerPlugin 允许的语法看来,必须(?)创建和添加一个库,而不是仅依赖 class 个文件。

看看我在替罪羊插件中做了什么,我在其中创建了一个 'test' 编译器。我用它来以单元测试的形式编译代码片段。

这样您就可以像往常一样编写代码和运行您的测试,而无需在外部发布。

https://github.com/sksamuel/scalac-scapegoat-plugin/blob/master/src/test/scala/com/sksamuel/scapegoat/PluginRunner.scala