2017-04-04 12 views
0

マルチモジュールアグリゲータープロジェクトに依存します。Mavenの - 私のような構造で、マルチモジュールMavenプロジェクトを持っている

projectA-parent 
    - module-1 
    - module-2 

そして、私は私がすべてのモジュールに持って帰りたいと思う別のプロジェクトを持っていますprojectA-parentは実行時の依存関係として(これはSpringアプリケーションで、projectA-parentの各モジュールには、私がautowireできるSpringサービスが含まれています)。

私はprojectA-parentに別のモジュールを追加する場合、それが自動的に実行時の依存関係として持ち込まれるように、私は何をしたいのですが

<dependency> 
    <groupId>projectA-group</groupId> 
    <artifactId>projectA-parent</artifactId> 
    <scope>runtime</scope> 
</dependency> 

のようなものである(つまり、私が持っている必要はありません新しいモジュールをSpringアプリケーションの依存関係として追加します)。そんなことは可能ですか?

答えて

1

あなたはこれがあなたの現在の推移POMにcom.my:commons-depsで宣言されたすべての依存関係を追加します

<dependencies> 
    <dependency> 
    <groupId>projectA-parent-groupId</groupId> 
    <artifactId>projectA-parent-artifactId</artifactId> 
    <type>pom</type> 
    </dependency> 
</dependencies> 

使用する必要があります。簡単なよう

<dependencyManagement> 
    <dependencies> 
     <dependency> 
      <groupId>...</groupId> 
      <artifactId>...</artifactId> 
      <type>pom</type> 
      <scope>import</scope> 
     </dependency> 
    </dependencies> 
</dependencyManagement> 

作品を使用して

は、あなたの依存関係の管理における成果物のバージョンの「を含みます」。したがって、プロジェクトに依存関係は追加されません。

UPDATE:

別aprroachは、BOM(部品表)を使用することであろう。 BOMの使用についてはlinkにチェックしてください。それは底のどこかに隠されています。

あなたは依存関係として、すべてのモジュールを一覧表示BOMを作成することができ、その後、あなたはこのようなあなたのpom.xmlにBOMを含めることができます:私はちょうどと呼ば別のモジュールを追加したいと思い

<dependencyManagement> 
    <dependencies> 
     <dependency> 
      <groupId>your_bom_group_id</groupId> 
      <artifactId>your_bom_artifact_id</artifactId> 
      <version>you_bom_version</version> 
      <type>pom</type> 
      <scope>import</scope> 
     </dependency> 
    </dependencies> 
</dependencyManagement> 
+0

問題は、モジュールが 'projectA-parent'のサブモジュールではなく、サブモジュールの依存関係であることです。私の現在の解決法(ベスト/唯一の選択肢かもしれません)は、他のすべてのモジュールを依存関係としてリストする "BOM"モジュールを用意し、次にこのタイプのBOMをタイプとしてインポートすることです:pom/scope:import dependency依存関係はBOM pom.xmlのscope:runtimeとしてマークされます。 – bobsyouruncle

1

プロジェクト内の他のモジュール、例えば:module-1module-2に依存瓶やポンポンなどmodule-deps

projectA-parent 
    - module-1 
    - module-2 
    - module-deps 

。 モジュールを追加するうちにmodule-depsを更新する必要がありますが、少なくとも1か所にしかありません。

関連する問題