Locked History Actions

sbt

Simple Build Tool(SBT)

※sbtは0.7と0.10以降とで非常に大きな変更がある。 書籍や様々なウェブサイトで0.7の機能が紹介されているが、現在(2011/10)のsbtとは大きく異なる。

何をするものか

MavenやIvy+Antのような位置づけのもの。依存解決からビルド・配布物の作成までをやってくれる。 内部ではIvyが使用されており、ローカルキャッシュもIvyと共用される。

  • メリット
    すべてをScalaで記述できること、これが最も大きい。

おかしなxmlとそれを拡張するためのJavaコードという組み合わせは不要で、antに例えればbuild.xmlとタスクを統一的にScalaで記述できる。

  • デメリット
    情報が少ない。マニュアル(英語)は、かなりの分量が用意されており、比較的親切な方なのだが、それだけでは全く使いものにはならない。

キー(antでいえばタスク?)それぞれのマニュアルが無いため、使い方を知るには相当苦労する。 しかも、作者はソースコードに全くコメントをつけていないため、scaladocを見たところであまり参考にはならない。

キーを組み合わせて新しいことをやろうとしたり、新たなタスクやプラグイン(タスクの一種)を作成するには多大な努力が必要になる(と思われる)。

学習のしかた

マニュアルを全文読んでも概念的な事柄がわかるだけで、実用にはほど遠いと思われる。 sbt本体のソースコードもほぼ意味不明。 おそらくは、サードパーティ製プラグインのソースコードを読むのが一番の近道ではないかと思われる。 やりたいことと、その実現方法がわかる。

参考サイト

ドキュメント翻訳

Getting Started

Detailed Topics

  • Artifacts what to publish
  • Best Practices
  • クラスパス

  • Command Line Reference
  • Compiler Plugins
  • Console Project
  • Cross Build
  • Forking
  • グローバル設定

  • Inspecting Settings
  • Java Sources
  • ランチャ

  • Library Management
  • Local Scala
  • Mapping Files
  • Migrating to 0.10+
  • Parsing Input
  • Paths
  • Process
  • Publishing
  • Resolvers
  • Running Project Code
  • Scripts
  • Setup Notes
  • タスク

  • TaskInputs

  • Testing
  • Triggered Execution
  • Update Report

チュートリアル

IDE用プラグイン

機能拡張プラグイン

  • sbt-assembly アプリと依存ライブラリを一つの大きなjarにする