Scala+PlayをIntelliJで快適に開発するための設定

More than 1 year has passed since last update.

Java8とsbtは入れてる前提。


Playのゲット

コメントがたくさん入ったサンプルのほうが嬉しいので、Starter Projectsをベースにする。

$ git clone git@github.com:playframework/play-scala-starter-example.git

$ cd play-scala-starter-example/


IntelliJで取り込む

IntelliJ Ultimate Editionを前提にする。


  1. IntelliJを開く > Import Project > 「プロジェクトのルートディレクトリ」を選択

    スクリーンショット 2017-07-22 11.02.37.png

  2. 「Import project from external model」にチェックを入れて「SBT」を選択

    スクリーンショット 2017-07-22 11.03.32.png

  3. 「Import Project」画面でDownloadの「Library sources」「SBT sources」「Use SBT shell for build and import」にチェック(もしJDKが設定されてなかったらセット)

    スクリーンショット 2017-11-20 9.16.33.png


IntelliJの実行設定


通常実行


  1. メインメニューから Run -> Edit Configurations を選択

    スクリーンショット 2017-07-17 15.17.58.png

  2. 左上にある + をクリックして、出てきたリストから "SBT Task" を選択する

    スクリーンショット 2017-07-22 11.14.44.png

  3. "Name" と "Tasks" 入力ボックス内に “run” を追加し、OKを選択

    スクリーンショット 2017-07-22 11.15.13.png

  4. IntelliJのツールバーに先程設定した run タスクが出現するので右三角の緑のボタンを押す

    スクリーンショット 2017-07-22 11.17.53.png


  5. http://localhost:9000/ をブラウザで開いて確認


デバッグ実行


IntelliJの設定

こっからは好みで。


行番号表示

Preferences > Editor > General > Appearance > Show line numbersにチェック


ファイル保存時に最後の行に改行追加

Preferences > Editor > General > Ensure line feed at file end on Saveにチェック


ヘッダコメント削除

クラスとか作るたびに、いちいち不要なコメントを付けてくるので消す。

Preference > Editor > File and Code Template > Includes > File Header

右側に下記のようなコードが書かれているので、全部削除すればOK。

/**

* @author ${USER}
*/


自動コードフォーマット&import文最適化

ファイルを保存したときに自動的に、コードフォーマットとimport文を最適化をしてしまうのが最強に便利。


マクロ作成


1. マクロの記録を開始する

Edit -> Macros -> Start Macro Recording


2.import文を最適化

Code -> Optimize Imports


3.コードフォーマット

Code -> Reformat Code


4.全てのファイルを保存

File -> Save all


5.マクロの記録を終了する

Edit -> Macros -> Stop Macro Recording


6.記録したマクロを名前をつけて保存

「Enter Macro Name」ダイアログに適当に名前を入力して(例:formatted save)、「OK」ボタンを押す

スクリーンショット 2017-07-22 12.17.11.png


キーボードショートカットへの割り当て


1. キーボードにショートカット追加

Preferences > Keymap > Macros

先ほど入力した名前(formatted save)が出てくるので、右クリックして、「Add Keyboard Shorcut」をクリック

1.png


2. ショートカットの入力

First Strokeで「Command + s」(実際のキーボード操作が反映される)

「Assigned to [Main menu | File | Save All]」と表示されるが無視して「OK」ボタンをクリック

スクリーンショット 2017-07-22 12.27.24.png


3. 警告無視

再びWarningが出るが、これも華麗にスルーして「Remove」ボタンをクリック

スクリーンショット 2017-07-22 12.27.48.png


4. 設定反映

「OK」ボタンを押して終了

スクリーンショット 2017-07-22 12.28.13.png


トラブルシューティング


jboss-interceptor-apiがないってエラーが出る

IntelliJでビルドするとエラーが出る場合がある。

[error] (*:updateSbtClassifiers) sbt.ResolveException: unresolved dependency:

sbt.ResolveException: unresolved dependency: org.jboss.interceptor#jboss-interceptor-api;1.1: not found

stackoverflowを参考に、~/.sbt/0.13/global.sbtに下記設定を記述すれば良い。

resolvers += "JBoss" at "https://repository.jboss.org/"

なお、~/.sbt/0.13/global.sbtがない場合は、ファイル自体を新規作成する。

ちなみに、IntelliJで使用するライブラリのようで、build.sbtに書いてもムダだった。そのため、global.sbtに書いてしまっているが、一回書いたら忘れて良い。


Scala SDK の設定

はじめてScalaプロジェクトを作ったときに遭遇した。が、二回目以降出なくなったので、必須かどうかは不明。一応、参考までに実施したことを残しておく。


  1. scalaファイルを開くと Setup Scala SDK と表示されるのでクリック

    スクリーンショット 2017-07-22 12.49.28.png

  2. Createボタンクリック

    スクリーンショット 2017-07-22 12.50.28.png

  3. scalaのバージョンを選択(build.sbtに書いてあるバージョンを選択)

    スクリーンショット 2017-07-22 12.50.45.png

  4. OKボタンクリック

    スクリーンショット 2017-07-22 12.50.28.png


参考:sbtのインストール

sbtが入ってない場合は、sdkman経由で入れるのが便利。sdkmanを使うと、JVM系の言語やFWのインストールが楽に入れられるので、最初にインストールする。


sdkmanインストール

$ curl -s "https://get.sdkman.io" | bash

$ source "$HOME/.sdkman/bin/sdkman-init.sh"


Golangの管理にgvmを使っている人のみ

歴史的経緯からgvmにエイリアスが貼られてしまうので無効化する。


~/.sdkman/etc/config

sdkman_disable_gvm_alias=true



Scalaとsbtのインストール

先程入れた、sdkmanを使ってインストールする。

$ sdk install scala

$ sdk install sbt