Skip to content

IntelliJの使用法(リモートデバッグまで)

Kouki NAGATA edited this page Oct 30, 2019 · 4 revisions

IntelliJの使用方法(プロジェクト作成からリモートデバッグまで)

はじめに

openpandaのソースを編集する際に、みなさんIDEを使われることと思います。 ここではIntelliJを使った際の、プロジェクトの作り方からリモートデバッグのやり方までを説明します。

筆者はeclipse使いなので、本当はそちらでやりたかったのですが、リモートデバッグの構成がうまくいかず断念です。 そちらでもいずれやりたいと思います。

1.1 IntelliJでプロジェクト作成

まずはIntelliJをダウンロードしてください。Community版(無償)で構いません。日本語化したものを筆者は使っております。
起動すると、「IntelliJ IDEAへようこそ」がタイトルのウィンドウが開くと思います。
新規プロジェクトの作成をクリックし、空のプロジェクトを選択すると、新規プロジェクトを作成する画面になると思います。 そこで、プロジェクト名とロケーションを適当に入力します。筆者は「openpanda」「/opt/IntelliJ/openpanda」にしました。

1.2 openpandaのインポート

メニューから、ファイル->新規->既存ソースからモジュール...を選択します。 インポート先を聞かれるので、openpandaのソースのパスを教えてあげてください。
続いてモジュールのインポート画面が出てくるので、既存モデルからモジュールを作成するでMavenを選択。 「次へ」で設定画面が出てきますが、特に変更する必要はないと思います(ルートディレクトリだけ確認)。
あとは次へを連打してください。特に変更箇所はありません。 完了後しばらくすると、openpandaがインポートされるはずです。

これでソースの編集ができるようになりました! なんか、勝手にビルドされてエラーの嵐になっていますが、気にしない気にしない。

1.3 リモートデバッグのための環境設定

一旦IntelliJから離れて、$CATALINA_HOME/bin/setenv.sh に以下の行を追加します。

export JPDA_ADDRESS=8001
export JPDA_TRANSPORT=dt_socket

IntelliJに戻って設定です。
メニューの実行から構成の編集を選択します。
実行/デバッグ構成の画面が現れるので、+を押して新規構成から、Remoteを選択します。名前はopenpanda(適当)にしておいて、ポート番号は8001を設定します。他の変更は必要ありません。

1.4 リモートデバッグをやってみよう!

ここまでで設定はおしまいです。では、リモートデバッグ、やってみましょう!
いつもはstartup.shでTomcatを起動しますが、リモートデバッグする際は、

$ catalina.sh jpda start

で起動させましょう。
Tomcat起動後、IntelliJのデバッグを押すと開始します。コンソールに

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

のような表示が表れたらokです!
ブレークポイントを設定した箇所が実行されるようにopenpandaを操作すると、制御がIDEに移るはずです。 Step in/Step over等のボタンで操作してください。お疲れ様でした。

おまけ:動作確認

リモートデバッグできるようになったとは言え、どこのコードがどこの機能に対応しているかは分かりにくいので、 リモートデバッグが正しく動いているか判断できないことがあるかもしれません。 そんな時に確認するための一例を示しておきます。

openpanda/assignment/impl/src/java/org/sakaiproject/assignment/impl/AssignmentServiceImpl.java

の3212行目、zipAttachmentsのメソッド名にブレークポイント(赤四角)をつけてみてください。
リモートデバッグが正しく動作しているなら、適当なワークサイトで、過去に出した課題の「提出数/新規」の数字の部分をクリックして、すべてダウンロードを押し、適当にチェックを入れてダウンロードを押すと、IntelliJに移行します。