Closed5
sbt の "test->compile" がわからなかったのでメモ

ここに書いてある。

sbt サブプロジェクトにおける依存性には2種類ある。集約とクラスパス。
test->compile
などの記載が関係あるのはクラスパス依存性の方。

foo depdendsOn(bar)
とかくと、foo
の compile
コンフィグレーションが bar
の compile
コンフィグレーションに依存しているとなるらしい。
それを明示的に書くと以下のようになる。
dependsOn(bar % "compile->compile")
->
が依存することを表している。

なので、このスクラップのタイトルの test->compile
は、
foo
の test
コンフィグレーションが bar
の compile
コンフィグレーションに依存している
ということの宣言ということになる。foo
のテストコードが bar
のコードを利用するってことか。

特に、Test が Test に依存することを意味する "test->test" は役に立つ宣言だ。 これにより、例えば、bar/src/test/scala にテストのためのユーティリティコードを 置いておき、それを foo/src/test/scala 内のコードから利用することができる。
複数のコンフィギュレーション依存性を宣言する場合は、セミコロンで区切る。 例えば、dependsOn(bar % "test->test;compile->compile") と書ける。
これも覚えておきたいところ。
このスクラップは5ヶ月前にクローズされました