4

Maven でマルチモジュール J2EE Web アプリケーションを構築しています。Web ビジネス アプリケーションには、いくつかのサブシステム/モジュールが含まれています。高度なモジュール性、分散チーム開発の容易さ、容易なコード ナビゲーション、容易な展開とアップグレードを実現するために、Web ビジネス アプリケーション システムを機能ごとに分離し、次に層ごとに分離します。Maven 階層は次のとおりです。

|--business-sub-system-1
|    --domain
|       --pom.xml
|    --dao
|       --pom.xml
|    --service
|       --pom.xml
|    --webapp(presentation)
|       --pom.xml
|--pom.xml
|
|--business-sub-system-2
|    --domain
|       --pom.xml
|    --dao
|       --pom.xml
|    --service
|       --pom.xml
|    --webapp(presentation)
|       --pom.xml
|--pom.xml
|
|--business-sub-system-3
| ...
|--business-sub-system-4
|...
|--business-sub-system-5
|...
|...
|pom.xml

ただし、プロジェクト全体が 1 つの Web プロジェクト (1 つの web.xml) として扱われるため、webapp を共有する必要があります。

ここに画像の説明を入力

私の質問は、webapp を異なるモジュールに分離する方法ですが、1 つの web サイトとして実行できますか? (各ビジネス サブシステムには個別の webapp/html/jsp/js/css がありますが、実行時に 1 つの Web サイトとしてマージできます)

4

1 に答える 1

1

これについて考えると、私があなたに与える最善のアドバイスは、別のチームが構築したものを個別にデプロイすることです。これらのサブシステムが互いに独立している必要があり、独立してリリースできる場合、それらを一度にまとめてデプロイすることはまったく意味がありません。

システムの要件が原因でそれが不可能な場合、アーキテクチャに関する最善の解決策は、フロントエンド層を 1 つの WAR コンポーネントに結合することです。この WAR コンポーネントは、さまざまなビジネス サブシステム (ドメイン、dao、およびサービス)。チームはこのコンポーネントを共有する必要がありますが、異なるフォルダーやパッケージなどに作業を分けることができます。

そうは言っても、コンサルティングの人生はそれほど簡単ではないことが多く、論理的な解決策はそのように可能です. だから、ここに私のより現実的な答えがあります:

メインの POM ファイルで、assembly-pluginを使用して、すべてのプロジェクトのレイオーバー ウォーを作成します。アセンブリの複雑さを軽減するために、ドメイン、dao、およびサービスの POM を単純な依存関係として含めることができます。

于 2013-08-08T18:30:10.480 に答える