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

时间:2015-07-05 19:13:59

标签: scala sbt scala-compiler

迭代我的编译器插件代码,我在每次编译之后将我的编译器插件发布到我的本地ivy存储库(通过publishLocal),然后运行我的其他项目,其中依赖于此插件是通过addCompilerPlugin定义的。有没有更简洁的实践来开发编译器插件?

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

我是否至少可以依赖编译器插件而不将其转换为库?从addCompilerPlugin允许的语法看起来,必须(?)创建和添加库,而不是仅提供对类文件的依赖。

1 个答案:

答案 0 :(得分:2)

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

通过这种方式,您可以像平常一样编写代码并运行测试,而无需在外部发布。

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