2

Google-Eclipse プラグインを使用して、非常に基本的な GWT Web アプリケーションを (ローカルに) 作成、ビルド、およびデプロイすることに成功しました。

問題は、私はデフォルトで設定されたプロジェクト構造 GWT (または Google-Eclipse プラグイン) の大ファンではないということです。だから私は自分にとって論理的に意味のある方法で物事を設定しようとしていますが、それでもDevModeローカルで実行して展開することができます.

そのため、2 番目のプロジェクトを作成しましたが、Web アプリケーションとして設定しませんでした。代わりに、通常の Java アプリケーションを使用しました。ソース ディレクトリ、EntryPoint実装 ( TestModule implements EntryPoint)、TestModule.gwt.xmlホスト ページ HTML などを作成しました。最初の (成功した) プロジェクトで行ったすべての成果物。

しかし今Run Configurations、Web Application Wizard が作成した最初のアプリで実行構成を作成したのと同様の実行構成を手動で設定しようとしています。

タブには、Available ModulesRun Configurations >> GWTを追加できるウィンドウが表示されます。[追加] ボタンをクリックしても、何を入力しても、選択可能なオプションのリストが表示されません。

そこでRun Configurations、プロジェクトのプロパティを別の方法で設定する必要があると仮定して、ダイアログを終了しました。そこで私は自分のプロジェクトを右クリックして に行き、案の定、Properties >> Goodle >> Web ToolkitAvailable Modules を追加できる同様のパネルが表示されました。このセクションを正しく構成すると、Run Configurationsダイアログ内で利用可能なモジュールのリストが利用可能になり、続行できるはずです。

これが私が見ているものです:

ここに画像の説明を入力

Available Modulesこのダイアログに実際にオプションが表示されるように、プロジェクトを正しく構成する方法についてのアイデアはありますか? 前もって感謝します!

注: 「 Web アプリケーション ウィザードを使用するだけで、はるかに簡単です」などの回答が多数あると予想されます。プラグインの Web アプリケーション ウィザードのヘルプ。ここで「自分でロールバック」するのが本当に、本当に難しいとわかったら、屈服してウィザードに戻ります. でも、そうなる前に頑張ってもらいたい!

4

1 に答える 1

5

Eclipse 用の Google プラグイン (以下、GPE) は使用しないでください。必要はありません。すべてが Java であるか、少なくとも Eclipse の知る限り、Java のように振る舞うのに十分な自己完結型です。ウィザード、JSNI オートコンプリート、UiBinder オートコンプリートがどうしても必要ない場合は、プラグインを除外することもできます。

GWT プロジェクトを開発モードで実行するには、SDK の基本的な可動部分が必要gwt-dev.jarですgwt-user.jar。など) および標準イベント、ウィジェット、およびその他のビット * オプション: gwt-servlet.jar- いくつかの基本的な GWT サーブレット用のサーブレット コンテナーで実行するクラス * オプション: requestfactory-*.jar- RequestFactory を使用しない場合は、気にする必要はありません

json.jarまた、ソースだけでなくとも必要になる場合がありvaldation-api.jarます。

これにより、任意のプロジェクトをプレーンな Java でコンパイルするのに十分です。gwt-user.jargwt-dev.jarはサーバーのクラスパスに属していません。ディレクトリに配置しないでください。コードを JavaScript にコンパイルするために手元に置いておいWEB-INF/lib/てください。

開発モードとコンパイラ自体はどちらも、mainメソッドを持つ単なるクラスであるため、標準の Eclipse 実行/デバッグ構成はどちらでも開始できます。war/それぞれに、「どこでソースを見つけますか」、「どのモジュールを開始しますか」、開発モードの場合は「私が提供するディレクトリはどこですか」など、開始するための独自のオプションがあります。

GPE を完全に回避します。

開発モード:

新しい Java 実行構成を作成し、上記のクラスがクラスパスとソース ディレクトリにあることを確認します。メイン クラスを に設定しcom.google.gwt.dev.DevMode、いくつかのパラメーターを追加します。

-war path/to/war/dir/ my.package.to.ModuleToRun

それ以外はすべて、機能を変更するための追加のフラグであり、どこから始めるべきかのヒントです。利用可能なその他のオプションについては、https://developers.google.com/web-toolkit/doc/latest/DevGuideCompilingAndDebugging#What_options_can_be_passed_to_development_modeをご覧ください。

これをデバッグするには、デバッグ構成として実行します。Eclipse は、クラスをホット スワップできないことについて少し文句を言いますが、これらを無視して [続行] をクリックします。.java ファイルに変更を加えて保存し、ブラウザーを更新すると、GWT の特殊な Dev Mode クラスローダーが変更を取得します。

コンパイル:

上記のように、クラスパス上の重要なクラスと jar を使用して実行構成を作成します。今回は、com.google.gwt.dev.Compilerメイン クラスを使用し、プログラムの引数の下でビルドするモジュールを指定します。繰り返しになりますが、コンパイル方法と提供する追加出力を変更するための多くのオプションがあります。その他のオプションについては、 https://developers.google.com/web-toolkit/doc/latest/DevGuideCompilingAndDebugging#DevGuideCompilerOptionsを参照してください。

ウィザードなしで GPE を使用する:

ここで覚えておくべき重要なことは、GPE はいくつかの詳細を紙に書いているだけだということです。ウィザードを使用する必要はありませんが、生の Java で作業するまでは、あるレベルではすべてのウィザードを使用します。クラスパス、インポートなど - これらはすべて GWT 開発に多かれ少なかれ適用される Java の概念ですが、遅延バインディング ルールなどを設定するのに役立つモジュールが追加されます。

モジュール選択ダイアログは必須ではありませんが、他に 2 つの部分が必要です。まず、これまでと同様に、[Google] > [Web Toolkit] で [Use Google Web Toolkit] をオンにし、有効な SDK が選択されていることを確認します。これは 2 つのことを行います。必要な jar をクラスパス (「GWT SDK」の下) に追加し、プロジェクト全体でいくつかの他のオプションを有効にします - JSNI オートコンプリート、開発モード、さまざまなウィザード (無視します)。必要なもう 1 つの部分は、[Google] > [Web アプリケーション] に移動し、「このプロジェクトには WAR ディレクトリがあります」と示し、そのディレクトリへのパスを指定して、Dev Mode が Jetty を起動する場所を認識できるようにすることです。

これが完了すると、プラグインは、エントリポイントを持つモジュールを指す html ファイルから開始できるようになります。これは基本的なプロジェクトのセットアップであるため、これらの詳細については大まかに説明します-ウィザードが得意とすること、例が豊富であり、おそらくこれらの指示を読んだことがあるでしょう(そうでなければ、ウィザードをスキップすることはありません...) . 前に選択した WAR フォルダー内から、そのような html ファイルを選択し、右クリックして [Run As...] > [Web Application] を選択します。GPE が再度 WAR フォルダーを要求する可能性があります。それを手伝ってください。開発モードでは、スタンドアロン ウィンドウではなくビューが Eclipse に追加され、そこから進行状況を監視できます。

コンパイルは、ツールバーの G アイコンに移動し、「GWT Compile Project...」を選択するだけです。使用するプロジェクト、開始するエントリポイント、およびその他のいくつかのオプションを尋ねるダイアログが表示されます。war フォルダーにコンパイルしてから Dev Mode を開始すると、Java のデバッグを容易にするために Dev Mode がコンパイル済み出力の一部を上書きし、追加のコンパイルが必要になる場合があることに注意してください。

于 2012-11-03T19:06:21.243 に答える