Scala 開発環境構築(IntelliJ IDEA, SBT, scalaenv)

前提と目標

下記のような開発環境の構築手順をメモしておきます。

  • Mac OSX 10.9.4
  • Scala 2.11.0
  • SBT 0.13 (ビルドツール)
  • IntelliJ IDEA 13.1 のCommunity Edition
  • IdeaVIMの設定(操作をvimライクに)
  • ターミナル用のScala環境の構築(scalaenv)

IntelliJ IDEA上でHello Worldを動かすところまでの手順を説明します。

ScalaとSBTはIntelliJのプラグインによって自動的にインストールされるため、個別にインストールする必要はありません。

現時点では、デフォルトのScalaのバージョンは2.10.4ですが、 SBTのビルド定義にバージョンを書けば、プロジェクトごとに異なるバージョンのScalaコンパイラでビルドできます。 具体例として2.11.0を使う方法を後述します。

また、上記の方法はIntelliJ IDEAのプラグインがScala一式をインストールしてしまうので、 ターミナル用の実行環境としてscalaenvを少し紹介します。

大半がIDEでの設定なので画像多め。

JDKのインストール

OracleのサイトでMac OS用のJDKのインストーラをダウンロードしてインストールします。

以下、JDK 8 (1.8.0 u20)で動作を確認しています。

IntelliJ IDEA 13.1をダウンロードしてインストール

インストールは割愛。初回起動時にプラグインのインストールを行います。

ScalaのためのIntelliJ IDEAの初期設定

初回起動時に聞かれる質問にはデフォルトのままOK。

まずはScalaとSBTのプラグインをインストールします。

“scala”でフィルタリングして、ScalaプラグインとSBTプラグインをインストールします。 少し時間がかかるかもしれません。 待っている間、”Background”というボタンが表示されると思いますが、押さずに終わるまでそのまま待ってください。

Closeボタンをクリックして戻っていくと、IntelliJをリスタートするかどうか聞かれるのでリスタートします。

次にJDKの設定をします。 Quick Startメニューより Configure -> Project Defaults -> Project Structureを順に選択。

Project SDKの項目でNewを選択してください。

下記のポップアップでJDKを選択してください。

使用するJDKのインストール先を選択するファイルダイアログが開きます。 私の場合はそのまま最初からJDK 1.8のパスが選択されていましたが、 そうでない場合はターミナルで /usr/libexec/java_home -v 1.8.0 を実行して表示されるディレクトリを選択してください。

$ /usr/libexec/java_home -v 1.8.0
/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home

下記のようになっていれば成功です。

HellowWorldプロジェクトを作ってみます。

TIPSを教えてくれる例のアレはOFFにしておきます。

Scalaクラスを追加します。

KindをObjectにするのを忘れないで下さい。

main()を定義します。object HellowWorldのすぐ下で、mainと入力してTABを押すとmainメソッドのテンプレートが補完入力されます。

メニューよりRunを実行します。

HellowWorldを選択。

画面下部にメッセージが出力されたら成功です。

別のバージョンのScalaコンパイラを使いたい場合

例えば2.11.0を使いたい場合、下記のようにbuild.sbtを修正してRefreshします。

Scala Consoleを実行してバージョンを確認してみてください。

IdeaVIMのインストールと設定

Preferences -> Plugins -> Browse repositories でIdeaVIMを選択してインストールし、IntelliJを再起動します。

次に下記の設定を行います。

Ctrl+Hでバックスペースが効くようにする

Preferences -> VIM Emulation^H のハンドラをVimに変更

Key Mapで ^H をバックスペースに変更(現在^Hに割り当てられているアクションはすべて解除)

JIS配列のキーボードで Ctrl+[ がEscになるようにする

Insertモードから抜けるときに Ctrl + [ を使えるようにします。

~/.ideavimrcを作成して、以下を記入します。

imap <c-]> <esc>

JIS配列のキーボードでもUS配列として認識されるため、 c-[ ではなく c-] と書きます。

行番号が表示されるようにする

Preferences > Editor > Appearance > Show line numbers にチェックを入れます。

ターミナルでの実行環境の準備(scalaenv)

IntelliJとは無関係に、端末上でScalaのREPLやコンパイラを使いたい時があります。 rbenvとほぼ同じ使用感で使うことができるscalaenvというツールを紹介します。

rbenvと同様、複数のバージョンを切り替えて使うことができます。 また、基本的にインストール先(~/.scalaenv)のディレクトリ以外を汚さないので、アンインストールが簡単です。 各バージョンは~/.scalaenv/versions以下のディレクトリにインストールされます。

scalaenv自体のインストールの手順は下記の通り。(gitが必要)

$ git clone git://github.com/mazgi/scalaenv.git ~/.scalaenv
$ echo 'export PATH="${HOME}/.scalaenv/bin:${PATH}"' >> ~/.zshrc
$ echo 'eval "$(scalaenv init -)"' >> ~/.zshrc

インストール可能なバージョンのリスト

% scalaenv install -l
All available versions:
scala-2.10.1
scala-2.10.2
scala-2.10.3
scala-2.10.4
scala-2.11.0
(割愛)

2.11.0をインストール
rbenv同様、ソースをネットより取得して、~/.scalaenv/versions以下に展開します。

$ scalaenv install scala-2.11.0

デフォルトのバージョンを2.11.0に指定

$ scalaenv global scala-2.11.0

カレントディレクトリ以下でのバージョンを 2.11.0 に指定

$ scalaenv local scala-2.11.0

参考

下記のリンクを参考にさせていただきました。