2017-09-19 113 views
0

私は同じ依存関係を持ついくつかの子pom.xmlファイルを持っていますが、 はバージョンだけが異なります。親のpom.xmlから継承するには<dependencyManagement>を使用します。例:親pomの子依存関係を区別する方法は?

Child1: 
<dependency> 
    <groupId>com.google.code.gson</groupId> 
    <artifactId>gson</artifactId> 
    <version>2.2.4</version> 
</dependency> 

    Child2: 
<dependency> 
    <groupId>com.google.code.gson</groupId> 
    <artifactId>gson</artifactId> 
    <version>0.9.9</version> 
</dependency> 

    Child3: 
<dependency> 
    <groupId>com.google.code.gson</groupId> 
    <artifactId>gson</artifactId> 
    <version>2.8.1</version> 
</dependency> 

これらを区別する方法はありますか?

+0

子供のpom.xmlをダブルテイクしました – stybl

+0

私はMavenの初心者ですが、もっと詳しく教えてください。たぶんいくつかの例があります。 – chebad

答えて

1

dependencyManagementを使用すると、親POMでこれらの依存関係を宣言し、その宣言を継承し、そのバージョンを子POMで上書きすることができます。

親POMはこのように見えるのであれば、あなたの問題の例を考えると、:

<dependencyManagement> 
    <dependency> 
     <groupId>com.google.code.gson</groupId> 
     <artifactId>gson</artifactId> 
     <version>2.5.1</version> 
    </dependency> 
</dependencyManagement> 

その後、あなたの子供のPOMはまだcom.google.code.gson:gsonの独自のバージョンを宣言することができます。

しかし ... dependencyManagementを使用しての標準的なメリットがある...

依存性管理が用意されています

  • バージョンの管理を統合し、一元管理を...これは特にです共有親を持つ複数のプロジェクトを持つ場合に便利
  • 複数のプロジェクトで使用される標準バージョンのアーティファクトを定義する

...と子POMでバージョンを含む依存関係を宣言する。このアプローチは、あなたがそのdeclrationのあらゆる側面を上書きすることを選択した場合は無関係な親POMでdependencyManagement宣言はすなわち、なぜそれを宣言する気にレンダリングします。

要約すると、複数の子モジュールで使用され、共通バージョンを定義する依存関係がある場合はdependencyManagementを使用してください。依存関係が1つのサブモジュールでのみ使用されている、またはすべての子モジュールで使用されているその依存関係の単一バージョンを主張したくない場合は、その依存関係に対してdependencyManagementエントリを作成する必要はありません。

関連する問題