Intellij UltimateをTomcatで動作させ、warをデプロイしています。 tomcatのwebappディレクトリにすべて正常にデプロイされます。
xhtmlファイルのようなファイルを変更した場合、tomcatが自動的にその変更を拾う方法はありますか? 今のところ、intellij からファイルをコピーして、tomcat の webapp ディレクトリにあるファイル のあるディレクトリにコピーする必要があります。 リコンパイルが必要なファイルがあることは知っていますが、xhtml'はそのうちの一つではありません。
IntelliJ IDEAでwarをデプロイした場合は、このようなことはできません。しかし、分解された戦争をデプロイする場合は、可能です。IDEAで。
my-webapp-name:war
を削除します(存在する場合)。
4.追加アイコンをクリックし、 'artifact' を選択し、my-webapp-name:war exploded
を選択します。
5.5. OK をクリックします(quot;Select Artifacts to Deploy" ダイアログ上で)。
6.6. Run/Debug Configuration Windowで、"Server"タブを選択します。
7.7. そのタブの真ん中にある "On frame Deactivation" の設定を "Update resources" または "Update Classes and Resources" のいずれかに変更する。これで、IDEAのフレームが非アクティブになったとき(フォーカスがなくなったとき)、IDEAはいつでも変更したファイルを再展開するようになりました。IDEAの下のステータスバーで確認できます。もちろん、新しいファイルを取得するために、Webブラウザを更新する必要があります。
Tomcatとの良い組み合わせは、"On frame deactivation" を "Update Resources" に、"On 'update' アクションを "Redeploy" または "Restart Server" に設定する事です。これにより、静的ページはフレームの非アクティブ化によって、クラスは 'update' アクションによって素早く更新されるようになります。
ZeroTurnaroundという会社は、動的クラスローダソリューションであるJRebelを販売しています。また、このテーマに関する5つのパートがあり、非常に優れています。
それでは、一連の動作をスクリーンショットで説明しましょう。
1.TomcatのRun/Debug設定を開きます(Run > Edit Configurations)。
2.追加アイコンをクリックし、 'artifact' を選択し、 pizza_mvc:war exploded
を選択します。
。
3.'更新時アクション'と 'フレーム非活性化時'を修正します。 ここに画像の説明を入力3。
4.リソースを更新するたびに、<Ctrl> + F10
を押します。
クラスとリソースを更新したい場合は、TomcatをDebugモードで実行します。このモードでは、IntelliJは問題なくクラスとリソースを更新します(ホットスワップ)。
同じ問題が発生しました。IntelliJは、私が"Run mode"として実行したため、私のプロジェクトを更新しませんでした。デバッグモードで実行し、 Ctrl+F10 を押すと、クラスとリソースが更新されます。
私はより良い方法を見つけました。
Eclipse では、静的ファイルを自動的にビルド、コンパイル、またはリロードしています。 実際には、静的ファイルは src / main / webapp から直接提供されます。
IntelliJ では、 src / main / webapp から直接提供する代わりに、ターゲットに作成されたフォルダーがあり、 src / main / webapp のコピーとその他のコピーがあります。関連するコンテキスト。 .. web-inf / classes / lib。
爆発したアーティファクトの出力をターゲットの代わりに src / main / webapp に置くと、ソースファイルが上書きされず、直接サービスが提供されます。ヒットする必要はありません- 更新リソース/更新リソースとクラス。
したがって、IntelliJで行う必要があるのはです。
1。 分解されたartifact出力ディレクトリをsrc / main / webappに変更します。 。。 2。 汚れたクラスを保存および再コンパイル/コンパイルするためのマクロを作成します(cmd + shift + f9)。 。。 。。 3。 レジストリと設定を編集して自動的にビルドし、アプリの実行中にビルドします(cmd + shift + a-registry)。 。。 。。
この後。, IntelliJの外側から静的ファイルを変更するジョブがある場合。, IntelliJやアップデートリソースに行かなくても、すぐに変更が表示されます。, クラスには、保存するマクロがあります。, コンパイルします。(注:[コンパイル/再コンパイル]をクリックすることもできます:cmd +シフト+ F9 / cmd + F9-複数のエディターを開いていると、ダーティ*エディターが汚れていないことがわかります。, そして変更。(クラス。) リロードされます。)