TechnTack

エンジニアの日常

Scalaの開発環境の構築(Windows)

にも書いた構成でScalaの開発環境の構築を行います。
(OSはWindows10 64bit)


目次


JDK インストール

java -version
javac -version

Scala インストール

Download | The Scala Programming Languageを確認したところ、 以下から好きな方法を選んでねって書いてあった。

Scala単体でのインストール
「sbtをインストール
Scala IDEsをインストール

と3つ記載があるが、今回は後述する「Activator」でScalaもインストールされるのでScala単体でのインストールは行いません。
※コンソールからScalaを個別に実行したい場合などは個別にインストールする必要があります。

Play framework インストール

Play frameworkはsbtをカスタマイズしたActivator(LightBend社)を利用してインストールします。
Scalaも同様)

※プロジェクトの新規作成や実行もActivatorから行います。

  • Typesafe Activatorより、最新のActivator(mini-package版)をダウンロードします。

  • ダウンロードが完了したら書き込み権限のある任意のディレクトリにてダウンロードしたZip(typesafe-activator-1.3.12-minimal.zip)を解凍します。
    解凍が終わったら、「activator.bat」のあるディレクトリパスをシステム環境変数のPathに追加します。
    ※「%解凍したパス%\typesafe-activator-1.3.12-minimal\activator-1.3.12-minimal\bin」

  • 解凍が終わったら、「%解凍したパス%\typesafe-activator-1.3.12-minimal\activator-1.3.12-minimal\bin」内にある「 activator.bat 」を実行します。
    このバッチでactivatorに必要なものがインストールされます。
    (数十分ほど時間がかかりますが、気長に待ちましょう)

    インストール後半で「Java™ Platform SE binary」の外部への通信の許可を求められますので、 これを 許可 します。
    (ローカルで確認する分であれば「プライベートネットワーク」のみで問題ありません。)

    しばらくすると以下のメッセージがコンソールに表示され、「http://127.0.0.1:8888/home」でブラウザが立ち上がります。
    [info] play - Application started (Prod)
    [info] play - Listening for HTTP on /127.0.0.1:8888

    立ち上がったブラウザからもプロジェクトの作成などが行えるのですが、
    今回はコンソールとIDEを利用して開発を進めるので、これは利用しません。

    なお、ここまででインストールは完了となりますので、起動されたブラウザとコンソールは閉じてください。
    (コンソールは「ctrl + c」で止めます)

    activatorのコマンドに関しては、コンソール上で activator help と入力し実行することで確認できます。

  • インストールが完了したので、プロジェクトを新規に作成してみます。
    プロジェクトの新規作成はコンソールから以下のコマンドで行います。

activator new testapp play-scala
※プロジェクトを作成する前にカレントディレクトリを
 プロジェクトを作成するディレクトリに移動しておいてください。
※「testapp」はプロジェクト名

activatorコマンドで「sbtconfig.txt が見つかりません。」と表示される場合は
 「%解凍したパス%\typesafe-activator-1.3.12-minimal\activator-1.3.12-minimal\conf」に「sbtconfig.txt」を作成してください。

以下はファイルの中身

# Set the java args to high

-Dfile.encoding=UTF-8

-Xmx512M

# -XX:MaxPermSize=256m

-XX:ReservedCodeCacheSize=128m

# Set the extra SBT options

-Dsbt.log.format=true
  • プロジェクトの作成が完了したら、起動してみます。
    まずはカレントディレクトリをプロジェクト内に移動してください。
cd testapp

移動が完了したら、実行してみます。

activator run
※初回起動では、必要なファイルのインストールも同時に行われるため、数十分ほどかかります。
 (ScalaやPlay frameworkなど)

しばらくすると以下のメッセージが表示されますので、表示されたら「http://127.0.0.1:9000」で実行したアプリを確認できます。
(ブラウザからアクセスするとScalaコンパイルが動くので、初回は時間がかかります)

--- (Running the application, auto-reloading is enable) ---
[info] p.c.s.NettyServer - Listening for HTTP on /0:0:0:0:0:0:0:0:9000
(Server started, use Ctrl+D to stop and go back to the console...)

ブラウザの画面 f:id:techn_tack:20170222230045p:plain

IntelliJ IDEA (IDE) インストール

  • IntelliJ IDEA the Java IDEよりインストーラをダウンロードします。 (今回は無料の Community Edition を選択)

  • 上記でダウンロードしたインストーラ(ideaIC-2016.3.4.exe)を実行し、インストールを行います。
    (2017/02/20 時点)

  • インストールが完了したら、IntelliJを起動します。 起動すると以前の設定を引く次ぐかどうかのダイアログが表示されますが、 初めてのインストールなので
    「I do not have a previous version of IntelliJ IDEA or I do not want to import my settings」
    側にチェックをいれてOKボタンを押します。 (以前の設定を引き継がない場合も同様)

    Plivacy PolicyをAcceptして、「 Download featured plugins 」まで進みます。

    ここで「 Scala plugin 」が表示されていますので、これをインストールします。

    インストールが完了したら「Start using IntelliJ IDEA」ボタンを押下して、 無事起動完了となります。
    (次回以降は上記手順はスキップされます。)

IntelliJ へのプロジェクトのインポート

  • 起動画面から「Import Project」を選択します。 f:id:techn_tack:20170222235714p:plain

  • プロジェクトディレクトリを選択するダイアログが表示されるので、
    上記にて作成したプロジェクトディレクトリを選択し、OKボタンを押下します。
    ※上記で作成したディレクトリの場合は「%任意のディレクトリ%\testapp」

  • 次ページでは「 Import project from external model 」にチェックをし、
    SBT 」を選択して、Nextを押下します。

  • 次のインポートオプションを選択する画面では、
     「Use auto-import」
     「Create directories for empty content roots automatically」
    にチェックを入れ、「Project SDK」については「New -> JDK」でPC内のJDKを検索して
    パスを表示してくれるので対象のJDKを選択して、Finishボタンを押下します。

  • しばらくすると「SBT Project Data to Import」ダイアログが表示されますが、
    そのままOKボタンを押下します。

f:id:techn_tack:20170223002058p:plain

ここまででインポート完了です。
無事インポートが終わっていればIntelliJが表示されます。

なお、画面右下で「2 Processes running…」と表示されている間は、
インデックス作成とリフレッシュが動作していますので、その間はPCの負荷が高くなります。(重たくなる)

※「2 Processes running…」が消えた後も、「Indexing…」が表示されている間はアクションを利用できません。

IntelliJを使用したリモートデバッグ

IntelliJ Ultimate」を利用している場合は、
上述しているプロジェクトのインポートから含めてActivatorと連携できるはずなので、もっと簡単にできる筈です。

ここではCommunity Editionの場合の説明を記載します。
(インデックス作成などが終わっている前提)

  • 「Edit Configurations」からデバッグ設定を開いて、 f:id:techn_tack:20170223005257p:plain

デバッグ設定ダイアログが開いたら、ダイアログ左上の「+」ボタンを押下して、「Remote」を選択します。
選択するとリモートデバッグの設定内容が表示されるので、ダイアログ上部の「Name」を入力して、Applyボタンを押下してください。
(その他の設定はデフォルト値のままで問題ありませんが、必要であればポート等を変更してください)

  • Community EditionではActivatorでデバッグ起動している物に対してリモートデバッグ接続を行う必要があるので、
    まずは以下のコマンドでデバッグ起動を行います。
activator -jvm-debug 5005 run

起動したらIntelliJ右上のプルダウンで上記で作成した物を選択し、虫アイコンをクリックします。 f:id:techn_tack:20170223231959p:plain

IntelliJのコンソールに以下のメッセージが表示されたら、リモートデバッグ成功です。

Connected to the target VM, address: 'localhost:5005', transport: 'socket'

あとは、好きな箇所にブレークポイントを配置して、確認してみてください。

最後に…

仕事が終わってからの隙間時間でポチポチ進めており、
纏まった時間をなかなか取れないので思うようには進みませんが、
今のところ少しづつでも楽しみながら進められているのでこのまま続けていこうと思います。