= 以下は古いです = '''※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本体のソースコードもほぼ意味不明。 おそらくは、サードパーティ製プラグインのソースコードを読むのが一番の近道ではないかと思われる。 やりたいことと、その実現方法がわかる。 * [[sbt/whyDifficult|なぜsbtはわかりにくいのか?]] == 参考サイト == * [[https://github.com/harrah/xsbt/|本家]] * [[https://github.com/harrah/xsbt/wiki|本家ドキュメント]] * [[https://github.com/harrah/xsbt/wiki/sbt-0.10-plugins-list|本家プラグインリスト]] * [[http://eed3si9n.com/ja/sbt-010-guide|非公式 sbt 0.10 ガイド v2.0]] * [[http://harrah.github.com/xsbt/latest/sxr/Keys.scala.html|Keys.scala]] == ドキュメント翻訳 == === Getting Started === * [[sbt/Getting-Started-Welcome|ようこそ]] * [[sbt/Getting-Started-Setup|セットアップ]] * [[sbt/Getting-Started-Hello|Hello, World]] * [[sbt/Getting-Started-Directories|ディレクトリ構造]] * [[sbt/Getting-Started-Running|sbtの実行]] * [[sbt/Getting-Started-Basic-Def|.sbtの定義]] * [[sbt/Getting-Started-Scopes|スコープ]] * [[sbt/Getting-Started-More-About-Settings|Settingについてもっと]] * [[sbt/Getting-Started-Library-Dependencies|ライブラリ依存性]] * [[sbt/Getting-Started-Full-Def|.scalaビルド定義]] * [[sbt/Getting-Started-Using-Plugins|プラグインの使用]] * [[sbt/Getting-Started-Multi-Project|マルチプロジェクト]] * [[sbt/Getting-Started-Custom-Settings|カスタム設定とタスク]] * [[sbt/Getting-Started-Summary|サマリ]] === Detailed Topics === * Artifacts what to publish * Best Practices * [[sbt/dt_Classpaths|クラスパス]] * Command Line Reference * Compiler Plugins * Console Project * Cross Build * Forking * [[sbt/dt_Global-Settings|グローバル設定]] * Inspecting Settings * Java Sources * [[sbt/dt_Launcher|ランチャ]] * Library Management * Local Scala * Mapping Files * Migrating to 0.10+ * Parsing Input * Paths * Process * Publishing * Resolvers * Running Project Code * Scripts * Setup Notes * [[sbt/dt_Tasks|タスク]] * TaskInputs * Testing * Triggered Execution * Update Report == チュートリアル == * [[sbt/stepByStep|ステップバイステップ]] == IDE用プラグイン == * [[sbt/Eclipse]] * [[sbt/IntelliJ]](sbt0.7に基づいている) == 機能拡張プラグイン == * [[sbt/sbt-assembly|sbt-assembly]] アプリと依存ライブラリを一つの大きなjarにする