がらくた部屋

多分技術ネタのがらくた置き場

Scala事始め(2) ”Windowsで”ScalaをIDEで書き始めるまで。

前回、Scalaの環境構築について書きましたが、知識不足+その後Windows上でScalaの環境を構築するのに色々とハマりどころがある事が分かったので再度1からまとめますorz

基本的にはこちらのscala develop environmentのWin向け+現時点の最新Ver.への追記です。

  1. JDK
    みんな知っていると思うので省略
  2. Typesafe Stack
    ここでWindowsではとんでもなくハマりました。(遠い目)
    • TypesafeからTypesafe Stackをインストールします。
      この時、WindowsではUniversalのZIPファイルを使います。この記事を書いている時の最新版はVer2.0.2なので直Linkはこちら
    • ダウンロードしたtypesafe-stack-2.0.2.zipを展開して、任意の場所に置きます。
    • ファイルを置いたら\typesafe-stack\binに環境変数Pathを通します。\bin配下にはScala、sbt、g8などScalaをコンパイル、実行などするための必要なファイルが全て含まれています
    • こちらの記事に書かれていますが、sbt等のVer.不一致があるため上記のそのままでは動きませんorz

      sbtのサイトから最新版のsbtをダウンロードします。この記事を書いている時はサイト上の最新版はVer0.12.2です。

      実はこの記事を書いている当初はVer 0.21.2はドキュメントのみアップされていて、sbt.zipはリンク切れの状態となかなかカオスでしたorz

    • ダウンロードしたsbt.zipを解凍して、\bin、\bin\classesのファイルを\typesafe-stack\bin配下に上書きコピーします。
  3. Scalaではg8コマンドでプロジェクトのひな形を生成します。
    プロジェクトファイルを作成したいバスに移動、以下のコマンドを実行します。
    g8 typesafehub/scala-sbt

    ※1:scalaコンパイラとsbtのコマンドでVer.の不一致があると「g8 typesafehub/scala-sbt」は大丈夫でも、「g8 chrislewis/basic-project」はその後のsbt実行時にVer依存で失敗するなど環境依存が発生します…

    ※2:g8コマンドはGitHubからテンプレートを取得するコマンドなので、GitHubのAPI制限等で

     { "message": "API Rate Limit Exceeded for xx.xx.xx.xx" } 

    と言ったエラーでコマンドが失敗する事があります。参考

  4. Scala IDE for Eclipseのインストール
  5. Eclipse向けのプロジェクトへのsbteclipse plunginの適用
    • Eclipeでプロジェクト作成、開発を進める場合g8で作ったプロジェクトのひな形にプラグインを設定するための.sbtを記述、実行する必要があります。
    • 3.のg8コマンドでプロジェクトを作成
    • 作成したプロジェクトは以下の/project/plugins.sbtを作成、以下を記述。
      addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.1.0") 
      ※これを書いている時、最新版は2.1.1ですがこれだとScala IDE for Eclipse 2.1 M2では動かなかったので2.1.0にしました。実行する際は最新のVerで動くかなどを公式サイトで確認して下さい。
    • EclipseからプロジェクトをOpen、実行する
      • Eclipseのメニューから上記で作ったプロジェクトをインポートします。
      • mainメソッドがある.scalaを選択し、「右クリック->実行->Scala アプリケーション」を選択してScalaのソースが実行する事を確認します。(2回目以降は実行履歴等から実行して下さい)

        ※1:マイルストーンVer.のせいなのか、プロジェクト選択->実行からScalaを実行する事は出来ません。

        ※2:g8 chrislewis/basic-projectで作られるデフォルトパッケージのままのソースだと、mainメソッドがあるソースを選択してもScala アプリケーションの実行は行われません

        ※3:Scala、sbt、g8、sbteclipse等のVer.不一致がある場合、sbtで作成したプロジェクトファイルでEclipseから「Scalaアプリケーションを実行」が表示されない時がありますorz

俺の屍を越えてゆけ (通常版)

俺の屍を越えてゆけ (通常版)