2017-11-14 24 views
1

プロジェクトの構造をモジュール化する必要があります。そのために、Build-Management-System Mavenの初めから使用しています。プロジェクトは内部ライブラリを使用します。 Mavenの依存関係Managentのメリットを利用し、使用されているすべての内部ライブラリをそこで定義されている1つのバージョンで上書きします。私の質問はとてもシンプルですが、私にとっては明確ではありません。多分あなたは私を助けることができます。Maven - 依存関係管理の使用

私は2種類の親ポンを持っています。

(1)Parent.pom - >バージョンのプレースホルダを設定し、それらを

を定義する(2)Child.pom - >

を構築し、いくつかの場所にモジュールをコピーするすべてのプロジェクトは、(から子です2)。

私の質問は次のとおりです。依存関係管理を置くための最良の場所はどこですか? parent.pomまたはchild.pomにありますか? parent.pomでdepManagementを使用しても、プロジェクトの依存関係のバージョンタグを削除できないことがわかりました。

私の質問は、依存関係管理を置くのに最適な場所はどこですか?

ありがとうございました。

答えて

1

私は依存関係管理のために部品表(BOM)を使用します。あなたがここに見ることができるとして、私は

<groupId>bom.test</groupId> 
    <artifactId>parent</artifactId> 
    <packaging>pom</packaging> 
    <version>1.0-SNAPSHOT</version> 
    <modules> 
     <module>childA</module>   
    </modules> 

    <dependencyManagement> 
     <dependencies> 
      <dependency> 
       <groupId>org.springframework</groupId> 
       <artifactId>spring-framework-bom</artifactId> 
       <version>4.3.8.RELEASE</version> 
       <type>pom</type> 
       <scope>import</scope> 
      </dependency> 
     </dependencies> 
    </dependencyManagement> 

How to use BOM file with Maven?

Maven BOM [Bill Of Materials] Dependency

私は示唆している構造:

親プロジェクトを あなたはからBOMについての詳細を得ることができます春のBOMを使用しました。

子は、プロジェクト:あなたは、私は、ばねのWebバージョンを指定していない子の依存関係からわかるように

<parent> 
     <artifactId>parent</artifactId> 
     <groupId>bom.test</groupId> 
     <version>1.0-SNAPSHOT</version> 
    </parent> 
    <modelVersion>4.0.0</modelVersion> 

    <artifactId>childA</artifactId> 
    <dependencies> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-web</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-test</artifactId> 
      <version>3.0.0.RELEASE</version> 
     </dependency> 
    </dependencies> 

、それがBOMから取得されます。しかし、春のテスト版が指定されました。 Mavenがどのように見ているか確認しましょう。だから、BOMバージョン

mvn help:effective-pom 

..... 
     <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-test</artifactId> 
     <version>4.3.8.RELEASE</version> 
     </dependency> 
     <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-web</artifactId> 
     <version>4.3.8.RELEASE</version> 
     </dependency>  
    </dependencies> 
    </dependencyManagement> 
..... 

により、BOMの内容を確認する

はのはmoduleAは、ウェブのため、このバージョンを使用し、テストでオーバーライドされていることを確認するために、依存関係の経営管理論を確認してみましょう4.3.8

です。

mvn dependency:tree 

[INFO] bom.test:childA:jar:1.0-SNAPSHOT 
[INFO] +- org.springframework:spring-web:jar:4.3.8.RELEASE:compile 
[INFO] | +- org.springframework:spring-aop:jar:4.3.8.RELEASE:compile 
[INFO] \- org.springframework:spring-test:jar:3.0.0.RELEASE:compile 
関連する問題