私は2つのモジュール、すなわちapiとserviceを持つ再利用プロジェクトを持っているとしましょう。再利用APIモジュールは、他のアプリケーションプロジェクトで使用できるインタフェース、タイプ、注釈を定義します。再利用サービスモジュールには実際の実装が含まれています。再利用プロジェクトは、次のようになります。Maven Javaインターフェイスと実装のマルチモジュールの問題
pom.xml: id=reuse, group=com.test.project, version=1.0.0
|__api-module
|__pom.xml: parent={id=reuse, group=com.test.project, version=1.0.0}, id=reuse-api
|__service-module
|__pom.xml: parent={id=reuse, group=com.test.project, version=1.0.0}, id=reuse-srv
また、再利用モジュールには難点があります。
pom.xml: id=application, group=com.test.project, version=2.0.0
dependency={scope=compile, id=reuse-api, group=com.test.project, version=1.0.0}
dependency={scope=runtime, id=reuse-srv, group=com.test.project, version=1.0.0}
今我々は再利用モジュールのimplimentation、全体の再使用モジュール(APIおよびサービス)であるとしているの変更を意味し、再利用サービスモジュールで何かを変更した場合の事は、ありますapiとサービスモジュールのバージョンが親モジュールから継承されるため、新しいバージョンがリリースされます。新しいポンポン構造は次のようになります。その後
pom.xml: id=reuse, group=com.test.project, version=1.0.1
|__api-module
|__pom.xml: parent={id=reuse, group=com.test.project, version=1.0.1}, id=reuse-api
|__service-module
|__pom.xml: parent={id=reuse, group=com.test.project, version=1.0.1}, id=reuse-srv
、アプリケーションは再利用の新しいバージョンで依存関係を変更することがあります。
pom.xml: id=application, group=com.test.project, version=2.0.1
dependency={scope=compile, id=reuse-api, group=com.test.project, version=1.0.1}
dependency={scope=runtime, id=reuse-srv, group=com.test.project, version=1.0.1}
の変更という方法はあります再利用サービスモジュールはアプリケーションにも変更をもたらさないでしょうか?アプリケーションは、実際に再利用の実装の変更によって影響を受ける必要はありませんか?
いくつかのコメント/提案がありますか?ありがとうございました。
変更されない場合、なぜAPIのバージョンを変更しますか? –
apiのバージョンを変更する必要はありません。 Springと同様のフレームワークを使用している場合は、Beanを構成し、サービス・ロケーターを使用してBeanのインスタンスを必要な場所に取得します。 – alainlompo