2016-04-05 12 views
0

現在、我々はANTスクリプトを使用してプロジェクトを構築し、jUnitテストを実行しています。さて、私たちはMavenに移ることにしました。Mavenプロジェクトへのパッケージ化

コアプロジェクトサブプロジェクトの2つのWebプロジェクトがあります。今ここでそれは複雑になる。彼らのプロジェクトは以下の通りです。 Project structure 私はこのサブプロジェクトにコアプロジェクトを追加したい場合は今、私はWebContentフォルダーとサブプロジェクトのjarファイルを作成し、コア・プロジェクトに入れます。現在は、Core-Projectを実行するたびに、Sub-Projectの内容をCore-Projectに抽出するユーティリティクラスが1つあります。

最終的なプロジェクト構造は次のようになります。

final project structure

どのように私はMavenのでこれを達成することができますか?私は、src-> main-> webappにあるいくつかのファイルを含むjarファイルを作成する方法を意味します。

+0

** 1)**あなたのサンプルには、 'src-> main-> webapp'というディレクトリはありません。 ** 2)**あなたはどんな結果を期待していますか? ** 3)**単純なJarは 'mvn package'で作ることができます。 – SubOptimal

+0

@SubOptimal質問を更新しました。 Webプロジェクトのjarを作成するにはどうすればいいですか? –

+0

Hm、あなたはWebプロジェクトを構築しようとしています。それをjarファイルにコピーし、そのjarを別のWebプロジェクトにコピーし、展開時にファイルを展開しますか? xy問題のように聞こえます。代わりに "web fragments"を使用して、コアプロジェクトにファイルを追加します。 – Stefan

答えて

0

あなたのアーキテクチャを少し考え直す必要があるようです。この回答はあなたの質問の範囲を超えているかもしれませんが、Mavenを '設定の上の大会'として扱うことが重要です。 Mavenパッケージングツールの組み合わせを使用してレイアウトを実現することは可能ですが、Mavenの規約を再構築して従うと、プロジェクト外の人には意味があり、メンテナンス作業が少なくなります。推奨

config-project 
sub-project 
core-project 

設定プロジェクトは、アプリケーションのすべての部分の構成を保持することができます。サブプロジェクトとコアプロジェクトはこのプロジェクトに依存し、実行時に使用することができます。他のプロジェクトで利用できるようにするには、このプロジェクトを 'jar'または 'zip'としてパッケージ化する必要があります。

サブプロジェクトには、アプリケーションの非ウェブベース部分に共通するバイナリコードのみを含める必要があります。これは 'jar'プロジェクトとしてパッケージ化し、config-project依存関係にパッケージ化しないでください。

core-projectは 'war'プロジェクトとしてパッケージ化する必要があります。 Maven War Plugin

設定を分離しておくと、ウェブコード以外のコードとウェブコードは少し慣れてしまいます。 Tomcatには、これらの部分で構成されたmavenプロジェクト構造を生成する優れたアーキタイプがあります。 Maven Tomcat Archetype