Maven(十二)Maven 依赖详解
依赖的传递性
- 注意1:在Eclipise创建的Maven项目,若依赖eclipse空间中其他自己创建的 的项目时,此时并不会报错,但是当执行
mvn compile
命令时还是会显示缺失败。所以依赖的其他自己创建的项目必须执行安装,但是**在eclipse中开发的时候没有必要每次执行mvn installation
,因为并不影响开发,只有开发完毕之后,在一起执行安装。
- 本质:即自己创建的项目必须安装到本地仓库中,但是在eclipse中不安装不会影响开发,但最后开发完毕打包时还是需要执行安装命令。
- 注意2:依赖的传递性,若父项目依赖子项目1,则子项目1中添加的依赖(pom.xml中配置的依赖)则会自动添加到父项目的依赖中(父项目中pom.xml会自动添加)
- 注意3:直接依赖和传递依赖
- 父项目依赖子项目1,子项目1又依赖与子项目2,父项目与子项目1为直接依赖,子项目2与父项目为传递依赖。
- 优点:可以传递的依赖可以不用重复声明,只需要在最底层声明一次。
- 非compile范围的依赖不能传递,如test和provided,必须在各个项目间重复声明。
依赖的排除
由于spring-core-4.0.0.RELEASE.jar依赖于commons-logging-1.1.1.jar
若想吧spring-core的依赖commons-logging排除
实现方法
在pom.xml中添加如下代码
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
获取坐标的方法
依赖的原则
- 解决jar包冲突问题、模块工程的jar包的冲突
路径最短者优先
路径相同先声明者优先
看denpendency标签的声明顺序