読者です 読者をやめる 読者になる 読者になる

IntelliJ IDEA TomcatでWebアプリケーションを起動する

IntelliJ IDEAでTomcatサーバを実行しJavaアプリケーションを実行する

IntelliJ IDEAでJava Webアプリケーションを開発する際、APサーバとしてTomcatを利用する方法を記載する。

環境

Tomcatのインストール

Tomcatbrewを利用してインストールを行う。

$ brew install tomcat

IntelliJ IDEAのRun/Debug設定

  • Run/Debug Configurations > Add New Configuration > Tomcat Server > Local を選択 f:id:gyamin:20161024000410p:plain

  • Serverタブ ConfigureからbrewでインストールしたTomcatをサーバとして設定する f:id:gyamin:20161024000413p:plain

  • Deploymentタブ Add から Artifact... を選択し Pom.xmlで設定されたBuildを選択する f:id:gyamin:20161024000415p:plain

  • 設定したRun/Debug Configurationを実行することでアプリケーションが起動する

hot swap設定

hot swap(hot deploy)は、APサーバを再起動することなくコードの変更をAPサーバに反映させること。

hot swapの利用

上記の設定後は、DebugモードでTomcatを起動して、ファイルを編集後、Updateをすることで反映される。

  • Javaファイルを編集する コードを変更する

  • Update ボタンを押す(command + F10) これがよくわかならなかった。勝手に反映されると思っていたが、Updateをしないといけない。(自動アップデート設定もできるのだが、InteliJ IDEAのファイル編集は保存。っていうアクションがないので、自動を設定しても、1度APサーバの動作後に反映される形になる。どうも反映されるタイミングがしっくりこないので、自分でUpdateする方がわかりやすかった。)

ちなみに

いろいろと設定を触っているうちにわかったこと。結構直感的にわからない。。。英語の理解力がないからかも。

Preferences > Build, Execution, Deployment > Debugger > HotSwap の設定

Reload classes after compilation をAlwaysにした場合、Updateをしなくても、APサーバが動作を行うと、変更が通知される。ただし、APサーバが1度でも動作しないと反映がされないので、1アクセス反映が遅れてしまった。

Run/Debug ConfigurationのOn frame deactivationの設定

こちらは、IntelliJ IDEAから別のアプリケーションにカレントのアプリケーションが切り替わった場合(表現が難しいが、ようは別のアプリケーションをアクティブにした場合)の動作の設定。Update classes and resourcesに設定して、コードを編集後、例えばブラウザなどにフォーカスを移動した場合、hot swapが実行された。