sbt(やactivator)で新しいタスクを定義する

Play frameworkで開発してて必要になったので
予習。(自分で書くことがあるかは微妙だけど)

そんなに難しくないけど、build.sbtとproject/Build.scalaの
優先順位はちゃんと把握しておきたい。

とにかく独自タスクを定義する

ネットからいろんなサンプルを参考にさせていただきましたが、
この形が個人的に一番わかりやすく、かつしっくりきたのでこれにしました。

結局のところはProjectのsettingsにTaskKeyをつっこめば、コレ以外に
適当な記述でもとりあえず動くはず・・・。

使い方は、

どちらでも動作します。(sbtをactivatorにしても同様)

Build.scalaをちゃんと書きたい。

Build.scalaに書く内容は、ある程度は限定されますね(ビルド用の設定なんだから当然ですが)

  1. 独自タスク
  2. 依存ライブラリ
  3. ScalaやJavaのオプション
  4. ネストしたプロジェクトの指定

くらいでしょうか。

1に関しては上記の通り。

依存ライブラリ

(独自タスク定義をやったことなくても、こっちは多分Play触ればだいたい誰でもやると思います。)

こんな感じですね。

ScalaやJavaのオプションとかその他もろもろ

これ網羅的にやると、スペースが足りないので設定できるオプションを確認する方法だけ

デフォルトで設定出来る項目は
sbt.Keys.scala内に網羅的にかかれています。

詳しい書き方とかは、Javadoc等の公式ドキュメントを参照してみてください。

settings()の中にSeq(SettingKey[_])を入れまくるだけでOKです。
知らないときは、SBTの設定面倒だと思ったけど、これがわかるとシンプルだな、と思えるように
なりました。


蛇足

sbtって、一番最初 scala build toolだと思ってたんだけど、simple build toolなんですね。
公式で言及されてるわけじゃない、っていうエントリも何件か見かけたけど。お恥ずかしい。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です