6

現在、組み込みのMaven4MyEclipse統合と組み込みのJ2EEサーバーサポートを備えたMyEclipseを使用していますが、Windowsで64ビットインストールを使用できるように、通常のEclipse(具体的にはHelios)に変換したいと考えています。(MyEclipseはまだWindowsで64ビットをサポートしていません。)

これまでのところ、m2eclipseとWTPプラグインを使用してHelios eclipseの実用的なプロトタイプを入手し、大規模なWebアプリケーションをtomcatにデプロイしています。デプロイは少しプロセッサを集中的に使用しますが、動作し、アプリが起動します。

ここで決定的に異なるのは、依存プロジェクトの展開方法です。MyEclipse環境では、すべての依存プロジェクトがWEB-INF / classesフォルダーに展開されたため、サーバーの実行中にIDEでJavaクラスを変更すると、影響を受けるファイルのみがコピーされます。サーバーのWEB-INF/classesと、クラスをJVMにホットスワップし、...ブーム-サーバーへのライブ変更。デバッグに最適です。

ただし、私のhelios変換では、すべての依存プロジェクトがJARされ、WEB-INF/libに配置されます。これには、実際にMavenで構築された本番イメージがどのように見えるかという利点がありますが、ホットスワップ機能が完全に失われているように見えるという点で、開発環境はこれによって深刻な不利益を被ります。ここで、依存プロジェクトのJavaクラスを変更すると、m2eclipseはJARを再パッケージ化し、デプロイされたWebアプリケーションが同期していないことを確認し、アプリケーション全体を再公開します。これは、Webアプリケーション全体を循環させる必要があるという問題であるだけでなく(そのサイズと膨大な初期化時間を考えると、率直に言ってうまくいかないものです)、Eclipseが再公開を行うのが厄介な遅延でもあります。(私たちのアプリケーションの場合、これには約1〜2分かかります。)

だから私の質問はこれです:この厄介な再公開ペナルティなしで、依存プロジェクト内の変更を取得して実行中のJVMにホットスワップし、デプロイされたファイルを置き換える方法はありますか?これは、これらのクラスファイルをWEB-INF / classesにデプロイすることを意味すると思いますが、それが(a)可能であるか、(b)このソリューションの一部として本当に必要であるかはわかりません。

これを解決するために他の人は何をしていますか?それは解決可能ですか?

前もって感謝します!

4

1 に答える 1

5

Re:WTPTomcatをm2eclipseでホットデプロイするで説明されているソリューションを探していると思います。

「公開せずにモジュールを提供」オプションを有効にすると、特別なjarがTomcatサーバーに追加され、WTPでのTomcatサポートがWebアプリケーションの「クラスパス」を制御できるようになります。また、ユーティリティプロジェクトはjarファイルに組み込まれていません。代わりに、ユーティリティプロジェクトのJava出力フォルダがWebアプリケーションの「クラスパス」に含まれ、クラスファイルを直接効果的に提供します。コンテキストの自動ロードを無効にし、デバッグモードで実行すると、クラスに加えた変更をホットコードで置き換えることができるため、コンテキストをリロードする必要がありません。これであなたが探していることを達成できると思います。

そうするために:

  • サーバービューに移動します
  • Tomcatサーバーをダブルクリックして、サーバー設定を開きます
  • [サーバーオプション]で、[公開せずにモジュールを提供する]オプションを選択します
  • [公開]で、[自動的に公開しない]オプションを選択します
于 2010-08-04T17:45:58.660 に答える