お仕事で少しScalaを触ることがあって、その環境構築についてまとめておきたいと思います。
基本的にMacに向けて解説していきますが、適宜環境に合わせて実行できるようにリンクを示していきますので、自身の環境に合わせて進めていってください。
本記事ではパッケージマネージャなどに頼らずに環境構築を行なっていきます。
Scalaとは
Scalaはコンパイル方式の言語で、Scalaのコードを書いてコンパイルすることでJava VMの上で実行可能なclassファイルを出力します。
Scalaのためのビルドツールとしてsbtというものがあります。
sbtを使うことで、プロジェクトによって任意のバージョンのScalaを使い分けることも可能になるので、sbtを使ってScalaの環境構築を行います。
Scalaの環境構築
まずは、Scalaを実行できる環境の構築を行います。
Scalaはsbtというビルドツールを使って実行やビルドなどを行うことができます。
sbtを使ってプロジェクトごとに指定のバージョンのScalaをインストールしたりすることが可能なので、まずはsbtをインストールしましょう。
sbt のインストールを参考に進めていきます。
手順としては
- JDK(Javaの開発環境)をインストールする
- sbtをインストールする
の二つだけです。
順番に進めていきましょう。
JDKのインストール
まずは、JDKをインストールしていきましょう。
お好みのJDKをインストールしてください。
代表的なものはOracleのJDKとOpenJDKと呼ばれるオープンソースのJDKです。
Javaはオープンソースのプログラミング言語で、Oracle社が商品としてビルドして配布・サポートしているJDKとOSSのコミュニティなどがビルドして配布している様々な種類のJDKがあります。
今回は、sbtの公式で推奨されているOpenJDKのパッケージでのインストール方法で進めていきましょう。
こちらのリンクからOpenJDK 11 (LTS)
とHotSpot
を選択してダウンロードしましょう。
ダウンロードできたらダウンロードしたパッケージを実行してインストールしましょう。
インストールできたら、javaが実行できるか確認してみましょう。
java -version
インストールしたバージョンが表示されていれば大丈夫です。
今回の場合、以下のように表示されていると思います。
openjdk [version]
OpenJDK Runtime Environment AdoptOpenJDK (build 1[version])
OpenJDK 64-Bit Server VM AdoptOpenJDK (build [version], mixed mode, sharing)
上のように表示されない場合は、既に他のJavaがインストールされている場合です。
JAVA_HOME
というシェル変数を書き換えることで、実行するJavaを切り替えることができます。
シェルの設定ファイル.bash_profile
や.zshrc
に以下のように追記し、JAVA_HOME
を設定して、確認してみてください。
export JAVA_HOME="/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home"
追記できたら、シェルを再起動して、結果を確認します。
exec $SHELL -l
java --version
JAVA_HOME
を書き換えることで、今まで使えていたJavaを利用しているアプリケーションが使えなくなる可能性もありますので、注意してください。
そのような場合は、適宜切り替えるようにするかしたで解説するコマンド実行時のみ設定する方法で対応してください。
sbtのインストール
次にsbtをインストールしていきましょう。
こちらの
ユニバーサルパッケージからのインストール
からZIPを入手してください。
ダウンロードできたらZIPファイルを展開して配置していきましょう。
unzip sbt-1.3.4.zip -d ~/[好きな場所]
最後に、sbtコマンドが実行できるようにpathを通します。
.bash_profile
や.zshrc
に追記してください。
export PATH="$HOME/[好きな場所]/sbt/bin:$PATH"
これで、sbtがインストールできたはずです。
シェルを再起動して確認してみましょう。
sbtは実行時にtarget
というディレクトリを生成してプロジェクトの成果物やキャッシュを保存するので、実行後に削除できるようにして試してみましょう。
この時に、JDKは先ほどインストールしたOpenJDKのものを使いたいので、JAVA_HOME
が正しく設定されているかも確認しておきましょう。
exec $SHELL -l
echo $JAVA_HOME
mkdir test && cd test
sbt --version
cd ../ && rm -rf test
また、コマンドの実行時のみJAVA_HOME
を指定したい場合は、以下のようにコマンドを実行することでJAVA_HOME
を指定できます。
JAVA_HOME="/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home" sbt
もしくは、新しいバージョンのsbtの場合以下のように指定することも可能です。
sbt -java-home /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
sbtで仕様しているJavaのバージョンを知るには、sbtのシェルモードの中でconsoleコマンドを実行します。
すると、scalaのインタプリタが実行され、仕様しているJavaのバージョンなどが表示されます。
sbtシェルモードの中で以下のコマンドを実行することで、JAVA_HOME
の場所を確認することもできます。
eval System.getProperty("java.home")
まとめ
最後まで読んでいただきありがとうございます。
以上で環境構築は完了です。
Scalaの実行環境はこれで整ったので、これでいろいろ試すことができます。
続けて、sbtでのプロジェクトの作り方について書いていきたいと思いますので、よければそちらも読んでみてください。