1. ホーム
  2. maven

[解決済み] MavenにおけるdependencyManagementとdependenciesの相違点

2022-03-19 11:27:55

質問

とはどのような違いがあるのでしょうか? dependencyManagementdependencies ? 私は、Apache MavenのWebサイトでドキュメントを見ました。 それは dependencyManagement は、バージョンを指定しなくても、その子モジュールで使用することができます。

例えば

親プロジェクト(Pro-par)は、依存関係を dependencyManagement :

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8</version>
    </dependency>
 </dependencies>
</dependencyManagement>

そして、Pro-parの子で、junitを使うことができます。

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
    </dependency>
 </dependencies>

しかし、親であるpomでjunitを定義する必要があるのだろうか?必要なモジュールに直接定義すればいいのではないでしょうか?

解決方法は?

依存関係管理 は、すべての子プロセスに継承される依存関係を追加することなく、依存関係のバージョンを統合し、一元管理することができます。これは、特に プロジェクト群 (つまり、複数の) 共通の親を継承しています。

もう一つの極めて重要な使用例として dependencyManagement は、推移的依存関係で使用される成果物のバージョンの制御です。これは例を挙げないと説明しにくい。幸いなことに、これはドキュメントに図解されています。