単一の Virgo アプリケーションが外部サービス プロバイダーの複数のバージョンと統合するための下位互換性を提供できるようにするソリューションを設計しようとしています。
たとえば、PortalApp と呼ばれるこのアプリケーションは、現在、ThirdPartyApp のバージョン 2.3 と統合されているポータルです。ThirdPartyApp v3.0 は新しい機能を備えて間もなくリリースされるため、PortalApp の新しいバージョンには、ThirdPartyApp の古いバージョンでは動作しない機能が含まれます。
実行時に両方のバージョンを動的に提供できる必要はありません。どちらか一方だけです。Virgo usr リポジトリにモジュールの 2 つのバージョンを保持し、サーバーの起動時に使用される .plan ファイルに基づいていずれかをロードできることは既に確立しています。
簡単にするために、プロジェクトは現在次のように設定されていると仮定できます。
ポータルアプリ - ウェブアプリ - サードパーティプロバイダー
ThirdPartyProvider に依存するモジュールは他にも多数あるため、ArtifactId を変更するとそれらのチェーンが壊れてしまいます。私がやりたいのは、同じモジュールの 2 つの異なるバージョンをビルドすることです。このようなもの:
ポータルアプリ - ウェブアプリ - - 1.0 - - 2.0 - サードパーティプロバイダー - - 1.0 - - 2.0
1.0 と 2.0 の両方をモジュールとして識別する親 pom.xml を web-app (パッケージ: pom) に作成しようとしましたが、そのうちの 1 つだけがビルドされます。
PortalApp プロジェクトの 1 つのビルドで、モジュールの両方のバージョンをビルドできますか?