一般社団法人 全国個人事業主支援協会

COLUMN コラム

最近またScalaでお仕事しています。
今回はPlay Frameworkでの仕事ですが、なぜか現場の方でIDE環境などが未整備なので自分で整備しました…。

IntelliJ CE版でよく見つかるやり方だとterminal/cmdプロンプト上で
sbt -jvm-debug 9999 run
IntelliJ上でリモートデバッグするやりかたが出てきますが、これだとエラーなどが出た時にIntelliJのソースに直接飛べないなど不便があるのでCE版でも出来る限り便利なようにしていきます
(有償版のIntelliJ  Ultimate Editionだと標準サポートしています)

  • Playのプロジェクトをsbtで作成、IntelliJで読み込みます。
  • File-Settingsを押下して設定画面を開きます。
  • Build, Execution,Depeloyment > Build Tools > sbtを開きます。
  • sbt projects – sbt shellの設定の Enable debuggingのチェックボックスにチェックを入れます。

  • IntelliJのRun/Debug Configurations上で「+」ボタンを押して「Remote JVM Debug」を選択
  • Nameに分かる名前を入れて
    • Debugger mode:Attach to remote JVM
    • Transport:Socket
    • Host: localhost
  • を設定します(おそらくデフォルトで上記の設定のはず)この時Port:はまだ設定しないのがポイントです。
  • IntelliJのsbt shellを起動します。
  • sbt起動時のListening for transport dt_socket at address: 51259 の番号をコピーします(このアドレスはsbt起動ごとに変わります)

  • sbt shellで「run」を実行してPlayを起動します。
  • 先に設定したIntelliJのRun/Debug ConfigurationsのPlay用の設定のPort: に先程コピーした dt_socket at addressの番号を貼り付けます。
  • 設定した設定でIntelliJのDebuggerを立ち上げて、自分が止めたいところにブレークポイントを設定します。
  • ブラウザ/Restクライアントなどlocalhost:9000の自分がデバックしたい任意のURLなど指定して実行します。
  • sbt -jvm-debug 9999 runしてリモートでバックするのと比べるとPlay起動時に毎回port番号を指定する必要があることですが、その代わりにsbt shellの色分け、エラーなどのリンククリックでIntelliJのソースに直接遷移してくれるので実際の開発効率はかなり上がります。これが面倒ならIntelliJ Ultimateをお買い上げ下さい(笑)
The following two tabs change content below.

宮山龍太郎

PADI RED、Tec40、PADIスノーケルガイド、プレーパーク活動など。 2020年8月現在、平日フルタイムのリモートワーク、開発マネージャー以外に週末スノーゲルガイドの見習いアシスタントとしても海で活動しています。

最新記事 by 宮山龍太郎 (全て見る)

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア