小编典典

Maven中dependencyManagement和dependencies的区别

all

dependencyManagement和 和有什么不一样dependencies?我在 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?为什么不在需要的模块中直接定义呢?


阅读 99

收藏
2022-02-28

共1个答案

小编典典

依赖管理允许合并和集中管理依赖版本,而无需添加所有子代继承的依赖。当您有 一组项目
(即多个项目)继承了一个共同的父项目时,这尤其有用。

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

2022-02-28