dependencyManagementdependencies有什么区别?
我已经在Apache Maven网站上看到了文档。
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吗?为什么不直接在所需的模块中定义它?

最佳答案

Dependency Management允许整合和集中管理依赖性版本,而无需添加所有子级都继承的依赖性。当您有一组继承一个公共父项的项目(即多个项目)时,此功能特别有用。

dependencyManagement的另一个极其重要的用例是控制在传递依赖中使用的工件的版本。没有示例就很难解释。幸运的是,在文档中对此进行了说明。

10-04 17:01