2016-07-28 7 views
3

私は、CommonServiceやCommonWebなど、さまざまなサービスやWebアプリケーション用の再利用可能なコードを含む2つのプロジェクトを持っています。Springブートで構築された共通サービス用のPom構造

私はすべてのサービスプロジェクトを共通サービスからできるだけ多く再利用したいと思っていますが、私はまだ一般的なプロジェクトにスプリングブートスターターのポムを利用してそれらを設定したいと考えています。ポーム階層を整理する最良の方法は何でしょうか?

CommonServiceとCommonWebには、AspectJコンパイラのようなコード、依存関係、およびプラグインがあります。私のAppServiceは、CommonServiceを依存関係として追加するのか、親として追加するのでしょうか?

答えて

2

私たちは、SpringBootの親から継承した共通の親を持つことで解決しました。この共通の親は、各プロジェクトの親です。これはマイクロサービスアーキテクチャにとって特に便利でした。

プロジェクトの種類が異なる場合は、 HTTP対メッセージングサービスでは、rootが常にSpring Bootの親であるPOMの親の継承階層を持つことができます。

親POMの継承階層があるのが気に入らない場合は、Spring Bootプロジェクトを分析してPOMをどのように整理するかをお勧めします。それは非常に賢いですが、あなたがいろいろなタイプのサービス/プロジェクトをたくさん持っていないと、残酷かもしれません。

もちろん、これらのPOMを適切にバージョン化し、スタンドアロンの成果物としていくつかのアーティファクト・リポジトリにデプロイする必要があります。

0

親POMはpomパッケージにする必要があります。

あなたのCommonServiceと、このようなCommonWebプロジェクト以外にCommonParentのMavenプロジェクトを持っている必要があります。

common (maven aggregate project) 
    +- common-service (module with `jar` packaging) 
    +- common-web  (module with `jar` packaging) 
    \- common-parent (module with `pom` packaging, 
        and dependent on common-service, common-web) 

次に、あなただけのすべてのあなたのプロジェクトのPOMは、あなたの共通の親の子であります。


また、あなた自身のAutoConfigurationクラスを作成し、独自のアプリケーションのプロパティを構築するために春ブーツが提供する@ConfigurationProperitesカプセル化を使用する必要があります。下位プロジェクトでは、common.web.feature1.enabled = falseのような設定プロパティで簡単に一般的な設定を制御できます。

関連する問題