私はGWTゲームプロジェクトを持っています。基本クラスのいくつかを、他のすべての GWT ゲーム プロジェクトと共有できるプロジェクトに引き出したいと考えています。何かのようなもの:
- FarmFrenzyFinale (gwt ゲーム プロジェクト)
- AcesOverNewYork (gwt ゲーム プロジェクト)
- mylib (上記の 2 つがインポートできる共有プロジェクト)
プロジェクト「mylib」には、ユークリッド距離メソッドや、RootPanel にラベルを追加するなど、GWT 固有のクラスで動作する他のメソッドなど、いくつかの一般的なものが含まれます。
このテーマに関する多くの投稿を読んだ後、"mylib" を GWT クライアント側コードに含めるには、特定のパッケージ名と projectname.gwt.xml ファイルが必要なようです。次のようになります。
|- com.me.mylib
| |---- mylib.gwt.xml // not sure of the contents here
|
|- com.me.mylib.client
| |---- classes you want included clientside go here.
上記は正しいですか?もしそうなら、Eclipse でプロジェクトを作成するとき、新しい「Java プロジェクト」を作成するだけですか、それとも新しい「Web アプリケーション」プロジェクトを作成することになっていますか? 新しい「Web アプリ」プロジェクトは、スタンドアロンの gwt プロジェクトを作成するので、上記の構造をセットアップする限り、単純な古い「Java プロジェクト」を実行できると思います。
上記のセットアップが完了したら、ゲームのクラスパス (farm frenzy など) に「mylib」を追加できます。これは、プロジェクトを右クリックしてプロパティ -> Java ビルド パス -> プロジェクト -> 追加?
ありがとう
- - - - アップデート - - - - - - - -
これは私のプロジェクトが現在どのように見えるかです:
AcesOverNewYork
|-- com.me.acesovernewyork
| |-- acesovernewyork.gwt.xml
|-- com.me.acesovernewyork.client
|-- all java files here, great.
mylib (not a gwt project, just a java project)
|-- com.me.mylib.client
|-- Foo.java
AcesOverNewYork (AONY) のクラスパスに "mylib" がプロジェクトとして追加されました (Eclipse では、AONY を右クリックし、[プロパティ] -> [Java ビルド パス] -> [プロジェクト] -> [追加] -> [mylib].
私は AONY で Foo クラスを使用していますが、問題なくコンパイルできます。AONY を実行しようとすると、ランタイム エラーが発生します。
"No source code is available for type com.me.mylib.client.Foo;
did you forget to inherit a required module?"
私のacesovernewyork.gwt.xmlファイルには次のものが含まれています:
<source path='client'/>
うーん、ここで他に何が欠けていますか?
ありがとう