ダウンロードとインストール
以下をダウンロードしてインストール。
- IntelliJ IDEA Community Edition(Version:10.0.3 Build:103.255)
- Scala(2.8.1)
- simple-build-tool(先走って0.7.6.RC0)
プロジェクトの作成
- sbt スクリプトの作成
- Scala プロジェクトフォルダ作成
- sbt スクリプトと sbt-launch-0.7.6.jar を作成したフォルダ内に配置
- プロジェクトフォルダ内で 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= '
- PROXY の設定が必要な場合は vm params に '-Dhttp.proxyHost=
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'