前言
【2020年9月11日】了解了一下Maven的依赖相关的配置,一些内容了解得还不够深入,比如dependency
里面的scope
和type
除了import
和pom
之外还有什么别的配置,不同配置的含义或者作用是什么;另外对于Maven的继承也还不熟悉,所以对于什么样的配置适用什么样的场景也还不能说得很清楚。
先将当前学习到的东西以及当前的理解记录下来,等到后面有些知识了解深入了再来补充。
- 几篇比较有价值的材料链接:
Maven实战(六)—- dependencies与dependencyManagement的区别
What is the difference between “pom” type dependency with scope “import” and without “import”?
使用import scope解决maven继承(单)问题
- 官网的英文介绍有点长,有时间和精力的时候再慢慢消化:
Introduction to the Dependency Mechanism
正文
自己总结一下,子项目从父项目中继承依赖,可以分为两种情况:
- 子项目直接继承父项目中的依赖,那么直接将依赖声明在父项目的dependencies里面。
- 不同的子项目有不同的依赖,不希望将这些依赖都配置到父项目的dependencies里,但是存在不同子项目都包含相同依赖的情况,希望相同依赖的版本是一致的,这时候dependencyManagement就可以排上用场了。
声明在dependencyManagement中的依赖关系并不会直接被依赖上,项目的依赖还需要在dependencies下进行配置,不过在dependencyManagement已经声明过依赖包版本号后,在dependencies下的配置依赖关系时不需要再配置版本号。
配置dependencyManagement可以import
一份pom
,这样配置dependencies时,如果依赖的包在import
的pom
中有声明,可以省去配置版本号,这应该避免依赖的包不匹配。