2016-05-05 6 views
0

を追加することなく、他のすべての子供たちのモジュールに依存しているように私はこのような設定であるMavenの集約プロジェクトがあります。Mavenの子モジュールは、依存

main_project 
    ->common_submodule 
    ->child_a 
    ->child_b 
    ... 
    ->child_x 
    ->webapps 

他の開発者が独自のサブモジュールを追加することができ、これらのすべてのサブモジュールがあるべきをWebアプリケーションのサブモジュールによって統合されているため、他のすべてのサブモジュールに依存している必要があります。私はwebappsのサブモジュールを変更しないようにしたいので、webアプリケーションのクラスパス上でこれらのサブモジュールを利用できるようにするには、そのpomに依存関係を追加する必要はありません。

+1

クラスパスにサブモジュールを置いておきたい場合は、webappsモジュールに何らかの形で情報を与える必要があります。つまり、webapps pom ...に依存関係を追加する必要があります。その本当の問題は何ですか? – khmarbaise

+0

プロジェクトはフレームワークであり、異なる開発者が互いに協力し合うことなく、独自のサブモジュールを構築します。潜在的な問題や競合を回避するために、アプリケーションの共通部分を変更せずにサブモジュールのみを変更するように制限したいと考えました。このファイルを変更しなければならないのは大きな問題ではありませんが、可能にするエレガントな解決策があると考えました。 –

+0

そして、私はあなたがビルドの順序が正しいことを確認するためにそれらの依存関係を定義する必要があると言うことを忘れた...あなたの場合webappsは最後にビルドする必要があります.... – khmarbaise

答えて

0

私はあなたにこれがよい理由があることを願っています。

ウェブアプリケーションに依存モジュールとして追加のモジュールを追加する方法があります。推移的依存関係として

  1. 新しいモジュール:Webアプリケーションですでに参照モジュール例えば(child_a又はchild_b)のいずれかに 依存として新しいモジュールを追加することによって。 注:このオプションには強くお勧めします。
  2. main_projectをwebappsの親プロジェクトとして追加すると、新しいモジュールをmain_projectの依存関係として追加することができます。これは、webapps内で継承された になります。

これは役立ちます。

+0

私が持っている問題を解決しない最初のオプションは、 。実際、私のシナリオではそれはさらに悪化するでしょう。 2番目のオプションは機能しません。それは、私がmain_projectの依存関係として追加した子どもの間で循環的な参照を作ります –