普通Scalaのcompiler pluginを使う場合、リポジトリにpublishされていれば
addCompilerPlugin("foo" % "bar" % "version")
として、あとはそれぞれのcompiler pluginに応じて、scalacOptionを設定すればいいわけです。公式ドキュメントでは、このあたり参照
http://www.scala-sbt.org/release/docs/Detailed-Topics/Compiler-Plugins.html
で、publishされていない場合どうするか?という話。(たとえばこれ https://github.com/jorgeortiz85/linter )
選択肢としては
- 「publishしてくれ!」って作者に頼む
- 自分でcloneしてきてビルドして、ローカルにpublish
- 自分でcloneしてきてビルドして、適当なリポジトリ(githubページをmavenリポジトリにしたものとか?)にpublish
- ソースまるごとコピーしてきて組み込む
などでしょうか。さっきのlinterのREADMEには、「publish-localしろ」と書いてあります。
そして、「ソースまるごとコピー」があれ*1なので、その部分を「毎回ビルド時にダウンロードしてきてコピーしてくる」ようにしたのが以下
*1: 登録したくないとか、plugin側が更新された場合に、コピーやり直すの面倒とか