IntelliJ IDEA における SBT のセットアップ手順

ダウンロードとインストール

以下をダウンロードしてインストール。

プロジェクトの作成

> sbt
Project does not exist, create new project? (y/N/s) y
Name: hello
Organization: etc9
Version [1.0]:
Scala version [2.8.1]:
sbt version [0.7.5]:
Getting Scala 2.7.7 ...
・・・

sbt プロジェクトから idea プロジェクトファイルの生成

  • sbt-idea-processor プラグインの取得
> *sbtIdeaRepo at http://mpeltonen.github.com/maven/
> *idea is com.github.mpeltonen sbt-idea-processor 0.4.0
 ...
> update
  • idea プロジェクトファイルの作成
> idea
    • idea の定義ファイルが作成される

IntelliJ IDEA のプラグイン導入

  • Scala plugin と SBT plugin を 'Download and Install'

  • File / Settings / SBT にて SBT の jar を指定

    • PROXY の設定が必要な場合は vm params に '-Dhttp.proxyHost= -Dhttp.proxyPort='

Hello World の実行

  • IntelliJ IDEA にて、先ほど作成したプロジェクトを 'open project...'
  • src/main/scala 以下に Main.scala 作成
object Main {
  def hello:String = "Hello World !!"
  def main(args: Array[String]) {
    println(hello)
  }
}
  • sbt を使わずに実行 (Ctrl - Shift - F10)
  • Run/Debug Configurations にて sbt の実行設定

    • 上記にて通常の実行時にsbtが利用されるようになる
  • sbt console でも各種アクションを実行可能

プラグイン設定

  • /project/plugins/Plugins.scala の作成
import sbt._

class Plugins(info: ProjectInfo) extends PluginDefinition(info) {
  val sbtIdeaRepo = "sbt-idea-repo" at "http://mpeltonen.github.com/maven/"
  val sbtIdea = "com.github.mpeltonen" % "sbt-idea-plugin" % "0.4.0"
}
  • /project/build/HelloProject.scala の作成
    • IdeaProject トレイトを追加
    • ついでに scalatest の設定
import sbt._

class HelloProject(info: ProjectInfo) extends DefaultProject(info) with IdeaProject {
  val scalatest = "org.scalatest" % "scalatest" % "1.3"
}
  • プロジェクト更新
> reload
> update
> idea

テスト実行

  • src/test/scala/MainSpec.scala でテストソース作成
import org.scalatest.FlatSpec
import org.scalatest.matchers.ShouldMatchers

class MainSpec extends FlatSpec with ShouldMatchers {

  "Hellow World" should "show Hello World" in {

    Main.hello should equal("Hello World !!")

  }
}
  • sbt コンソールにて'test'