你能从 sbt 提示符中注入一个编译器插件吗?

can you inject a compiler plugin from the sbt prompt?

在 sbt 中,你能从 sbt 提示符而不是从构建定义文件中注入编译器插件吗?

动机:

能够将您自己开发的编译器插件注入到属于您的测试套件的项目中,而无需编辑它们的构建定义。我发现自动编辑构建定义以连接插件是相当不确定的...

额外的动机:

使用和不使用某个编译器插件灵活编译,无需编辑文件,也不会污染团队 git 使用您只需要在特定时间使用的编译器插件。例如。考虑 https://github.com/sksamuel/scalac-scapegoat-plugin.

如果一切都失败了,你能用全局安装的 sbt plugin 来引入新的 sbt 命令吗?

运行 来自本地位置的插件可以像以下示例一样工作:

set scalacOptions in ThisBuild += "-Xplugin:/home/USERNAME/.ivy2/local/......./jars/plugin_2.11.jar"

但是,此方法不会从存储库中获取插件,只能从本地路径中获取。寻找一种全局加载插件并仅从 sbt 提示符激活它的方法,天真地将插件作为托管依赖项添加到 ~/.sbt/0.13/plugins/plugins.sbt 的全局插件定义中,此后编译项目时不会激活插件.