在pom.xml文件里,我们往往习惯按照如下方式引入依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.56</version>
</dependency>
上述代码实际上自动填充了
<type>jar</type>
也即将依赖从maven仓库中以jar的形式下载到了本地仓库,但缺点也很明显:
1. 每一个依赖的类库都要在pom.xml中写明,导致pom.xml冗长。
2. maven本地仓库越来越大,极大的占用了磁盘空间。
为了解决上述问题,我们选择使用dependencyManagement,当与<scope>import</scope>搭配使用时,导入的不再是jar文件,而是一份写有依赖的pom文件,如下图所示:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>1.5.9.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
这种做法还有一个好处是缓解了maven继承的压力。众所周知,一个pom.xml文件内只能有一个<parent>,而spring boot项目需要依赖spring-boot-starter-parent,如果此时项目需要继承其它父项目,那么使用dependencyManagement就是一个非常好的解决方案了。