Scala のライブラリや sbt plugin のうち、maven central などのレポジトリに登録されていないものを使うのも sbt なら簡単です。
自分で fork してちょっと書き換えたバージョンを使いたい場合なんかにも使えます。
Github 上のライブラリを使う
user/repo-name
を使いたいと仮定して build.sbt
に次のように書きます。
build.sbt
lazy val root = project.in(file(".")).dependsOn(githubRepo)
lazy val githubRepo = uri("git://github.com/user/repo-name.git#commit")
いくつか注意点があります。
- 1行目と3行目の間に空行(改行だけの行)が必要です。
-
uri()
引き数のフォーマットに注意します。Github の SSH clone URL では通りません。たとえば nscala-time の場合、SSH clone URL はgit@github.com:nscala-time/nscala-time.git
ですが、git://github.com/nscala-time/nscala-time.git
を指定します(@
→://
と:
→/
の二箇所、よく見てください)。 - uri には
#commit
で branch 名や commit id を指定できます。特定の commit を使い続けたい場合に指定します。
なお、「Github上」と書きましたが、公開 Git レポジトリであれば Github である必要はありません。Bitbucket でも Gitlab でも Gitbucket でもいいです。
Github 上の sbt plugin を使う
sbt plugin の場合も書き込むファイルが違うだけで、あとは同じです。
user/repo-name
が sbt plugin だとして、project/plugins.sbt
に次のように書きます。
project/plugins.sbt
lazy val root = project.in(file(".")).dependsOn(githubRepo)
lazy val githubRepo = uri("git://github.com/user/repo-name.git#commit")
注意点はライブラリの場合と同じです。