Maven をビルド システムとして使用して GWT 開発を始めたばかりです。
私は Java + Flex の世界から来たので、当然、クライアント側モジュールとサーバー側モジュールが明確に分離されています。
GWT のベスト プラクティスを掘り下げ、さらに深く掘り下げていくうちに、GWT プロジェクトのデフォルト構成は、ますます責任の混乱のように感じられます。特にマルチモジュール プロジェクトに関しては。
サーバー側のロジックは「サーバー」パッケージに属し、共有コードは「共有」に属し、GWT コンパイラーによって「クライアント」パッケージにコンパイルされたものは HTML+JavaScript に属するという慣習があることを理解しました。すべてのコードは src/main/java に移動します。ここまでは順調ですね。
どのように見ても...「クライアント」パッケージの内容は単にデッドコードです。Java コンパイラーがこれをクラスにコンパイルしたとしても、クラスは実行時に使用されることはなく、コンパイル段階で GWT コンパイラーに入力を提供するためにのみ必要です。したがって、Java のように見えても、実際には Java ではなく、Java のように見えるだけです。これらを「ライブ」コードと同じ jar 内に配置するのは、ちょっと汚いと感じます。
このような Maven 構造の方が理にかなっているでしょうか。
/src/
/src/main/
/src/main/java
/src/main/shared
/src/main/gwt
また、java-compiler-plugin に src/main/java と src/main/shared を使用させ、GWT コンパイラに src/main/gwt と src/main/shared を使用させるには?
また、ビルドが 2 種類のアーティファクトを生成する場合は、はるかに気分が良くなります... src/main/java および src/main/shared からのクラスを含む通常の「jar」と、クラスとソースを含む 2 番目の「gwt」 src/main/gwt および src/main/shared.
混乱した jar に依存関係を追加することはありませんが、GWT コンポーネントをインポートするか、サーバー側の機能をインポートするかを決定できます。
次に、GWT のデフォルトでは、xml、リソース、およびその他のものを src/main/java ... XML && Resources != Java に配置することです ;-)
それとも、私がまだ気付いていないという本当の理由があるのでしょうか... それとも、そのようなことを心配せずに、汚れ始めなければならないのでしょうか?
クリス