1

Eclipse 用の Google プラグインを使用していますが、次の問題があります。

プロジェクト (A) は、GAE 上で実行され、JPA を使用するサーバーと対話する GWT ベースの GUI で構成されています。さらに、レガシー データを新しいデータストアに移行するためのプロジェクト (B) があります。これらの両方のプロジェクトは共通のデータ モデルを使用するため、インターフェイスと列挙型のセットを別のプロジェクト (C) に抽出し、他の 2 つのプロジェクトの依存関係をそれに設定しました。

Java アプリ プロジェクト (B) は機能しているようですが、GWT/GAE プロジェクト (A) は、クラスを手動で WEB-INF/classes ディレクトリにコピーした場合にのみ機能します。明らかに、これはホストされたモードを使用している場合にのみ機能します。

Eclipseでこのようなマルチプロジェクト設定を構成する方法を知っている人はいますか?

また、マルチ プロジェクト レイアウトが最適なソリューションであるかどうかもわかりません。共通のモデル オブジェクトのセットは、次の 3 つの領域すべてで使用されます。

  • ユーザー クライアント (クライアントと共有の標準フォルダーをコンパイルする GWT プロジェクト)
  • サーバー側 (GWT-RPC、アップロード、およびさまざまなフィードのサービスを提供)
  • 移行アプリケーション (レガシー データをアップロード サーブレットにポストする)

重複するクラスの量を最小限に抑えるためのアーキテクチャ オプションは何ですか?

4

1 に答える 1

0

別の Java プロジェクトを使用して GAE プロジェクトを機能させるには、最初のビルド パスに 2 番目のプロジェクトを追加する必要があります。これは問題の一部のみを解決し、開発で必要なクラスを参照できるようにします。

もう 1 つの問題は、GAE プロジェクトを開発モードで起動すると、他のプロジェクトのクラスが見つからないことです。あなたがする必要があるのは、プロジェクトをjarとしてエクスポートし(名前は関係ありません。クラスはコンパイルするかどうかは関係ありません)、irをWEB-INF/libフォルダーに入れます。jar をビルド パスに追加する必要はありません。プロジェクト参照を引き続き使用できますが、他のプロジェクトに変更を加えるたびに、それをエクスポートして jar を新しいものに置き換える必要があることに注意してください。より良い方法は見つかりませんでしたが、少なくとも WEB-INF/classes の代わりにこのフォルダーを使用すると、GAE によって削除されることはありません。

アーキテクチャ オプションに関しては、クライアントとサーバーの両方を 1 つのプロジェクトに入れることで、開発が容易になります。次に、移行アプリからそのプロジェクトを参照できます。そうすれば、他のプロジェクトにあまり影響を与えずにメインプロジェクトを簡単に維持できると思います(移行プロジェクトの寿命ははるかに短いため、長期的には他のプロジェクトほど重要ではありません)。

于 2010-05-11T14:52:27.703 に答える