免責事項:私はorg.codehaus.mojo
プラグインの元メンテナーであり、net.ltgt.gwt.maven
の著者です。
プラグインは、MavenでGWTを使用する方法とは大きく異なります。私はここで最も重要なものを要約しようとします。
まず、org.codehaus.mojo
はGWTの特定のバージョンに関連付けられています。これは、プラグインの新しいバージョンが、GWTの新しいバージョンが相違点を説明するためにリリースされるたびにリリースされなければならないことを意味します。一方、Mavenのドキュメント(mvn gwt:help
)などでは、すべてのGWTオプション/フラグを設定プロパティとして公開しています。プラグインでバグが修正された場合、次のプラグインリリースで使用されているものと一致するようにGWTのバージョンを更新する必要があることを意味します。常に最新のGWTバージョンを使用するべきですが、新しいバージョンなどとの互換性がないため、他の依存関係がすぐに更新されない可能性があります。
net.ltgt.gwt.maven
プラグインは2つの最新バージョンのGWTとの互換性を目指していますが、より多くのバージョンと互換性があります(テスト済み/保証対象外です)。つまり、プラグインをGWTから独立して更新することができます。
org.codehaus.mojo
プラグインは、gwt-dev
とgwt-user
(およびgwt-servlet
!)の依存関係をもたらします。これは、プロジェクトの依存関係と矛盾する可能性があります。また、別のgroupId
で独自のforkしたGWTを使用している場合は、プラグインの依存関係からそれらを除外することはできません(com.google.gwt
groupId
を使用するか、依存関係を変更するためにプラグインをforkする必要があります) 。
net.ltgt.gwt.maven
プラグインはとgwt-app
のカスタムpackaging
です。 MavenでGWTアプリケーションをどのように行うべきかについては、クライアントとサーバ(および共有)のコードを別々のMavenモジュールに分ける方法についてかなりの意見があります(実際にはMaven Way™に従っています。それぞれ依存関係があります)。もちろん、これらのパッケージを使用することを余儀なくされることはありません。適切なデフォルトと慣習を設定することで、POMのコンフィギュレーションを大幅に削減しました。最後に、なぜなら「プロジェクトレイアウト」上の上記独断ビューから、net.ltgt.gwt.maven
プラグインがマルチモジュール(別名反応器)をサポートするように設計されて
ビルド、例えば、gwt:run
がなければならない、org.codehaus.mojo
プラグインに反しクライアントとサーバーの両方のコードが "生きている"プロジェクトで実行します。 (gwt:run
はアグリゲータモジュールでは呼び出せないので)mvn install
に依存するようなマルチモジュールビルドではひどいハックにつながり、build-helper-maven-plugin
を使用して他のモジュールからクライアントソースを持ち込んでシームレスな開発体験を実現します。
あなたはGWT-のmaven-の原型にthis commitでプラグインとの違い(免責事項:私は著者よ)見ることができますnet.ltgt.gwt.maven
プラグインにorg.codehaus.mojo
から切り替えます。
これは、異なるベンダーのプラグインの違いです。両方のプロジェクトは、執筆の時点で活発に見える。あるものが他のものより優れているかどうかについての議論は、実際にはSOには関係しません。 – Mena