2

Java EE環境の下で、いくつかのJSPファイルを含むWebページを作成しました。含まれているJSPの1つがheader.jspであるとしましょう。Stackoverflowで使用されるものと非常によく似ており、ユーザーやリンクなどに関する情報を表示します。このJSPは、ユーザー情報を取得するためにJavaコントローラーにリンクされており、すべてのWebアプリケーションを含むWARファイルの一部です。

開発にはEclipseを使用し、ビルドとパッケージ化にはMavenを使用しました。

次に、新しいwebApplicationを構築する必要があり(つまり、新しい戦争)、ヘッダーを再利用したいと思います。

私がふりをするのは:

  • コードを複製しない
  • どちらの戦争も1つのバージョンのヘッダーコードを使用します

したがって、問題は次のとおりです。

古いプロジェクトから新しいプロジェクトに両方のファイル(header.jspとcontroller.java)をコピーして貼り付けることを回避する方法はありますか?

4

1 に答える 1

8

WARファイルのパッケージ化を処理するプラグインであるMavenWARプラグインは、この問題を正確に解決するための「オーバーレイメカニズムを提供します。プロジェクトのタイプを「WAR」にするだけで、すでにWARプラグインを使用しています。mavenは、パッケージフェーズバインディング用のWARプラグインの使用を含め、プロジェクトのビルド方法に関する手がかりとしてこれを使用します。

オーバーレイが機能する方法は、必要なjarファイルへの依存関係を削除するのと同じように、WARファイルが別のWARプロジェクトを依存関係として宣言することです。WARプラグインのパッケージmojoが起動すると、別のWARへのこの依存関係が認識され、2つの組み合わせとして新しいwarが構築されます。ファイルが両方のWARSに存在する場合、ファイルのマージは行われないことに注意してください。一方は単にもう一方をオーバーライドします。使用するプラグインを選択するようにプラグインを構成できます。デフォルトでは、現在のプロジェクトのファイルが優先されます。また、必要に応じて、複数の戦争に依存することもできます。

于 2013-01-03T17:24:34.360 に答える