为了账号安全,请及时绑定邮箱和手机立即绑定

Maven中依赖关系管理和依赖关系的差异

Maven中依赖关系管理和依赖关系的差异

Maven中依赖关系管理和依赖关系的差异.之间的区别是什么?dependencyManagement和dependencies?我在ApacheMaven网站上看到了这些文档。项下定义的依赖项。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?为什么不直接在需要的模块中定义它呢?
查看完整描述

3 回答

?
慕斯709654

TA贡献1840条经验 获得超5个赞

依赖性管理允许合并和集中管理依赖关系版本,而不添加由所有子级继承的依赖项。当您有一组项目(即不止一个)继承共同父母的。

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


查看完整回答
反对 回复 2019-07-02
?
慕容708150

TA贡献1831条经验 获得超4个赞

我对这个问题的回答很晚了,但我认为它值得比接受的问题更清晰的回答(这是正确的,但并不强调实际的重要部分,这是你需要自己推断出来的)。

在父POM中,<dependencies><dependencyManagement>这是:

中指定的工件。<dependencies>节将始终作为子模块的依赖项包括在内。

中指定的工件。<dependencyManagement>部分中也指定了子模块时,才会将它们包含在子模块中。<dependencies>子模块本身的部分。你为什么这么问?因为您在父级中指定了版本和/或作用域,所以在指定子POM中的依赖项时可以将它们排除在外。这可以帮助您对子模块的依赖项使用统一版本,而无需在每个子模块中指定版本。


查看完整回答
反对 回复 2019-07-02
  • 3 回答
  • 0 关注
  • 691 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信