Maven(十二)Maven 依赖详解

时间:2023-12-12 21:59:08

依赖的传递性

  • 注意1:在Eclipise创建的Maven项目,若依赖eclipse空间中其他自己创建的 的项目时,此时并不会报错但是当执行mvn compile命令时还是会显示缺失败。所以依赖的其他自己创建的项目必须执行安装,但是**在eclipse中开发的时候没有必要每次执行mvn installation,因为并不影响开发,只有开发完毕之后,在一起执行安装。

    Maven(十二)Maven 依赖详解
    • 本质:即自己创建的项目必须安装到本地仓库中,但是在eclipse中不安装不会影响开发,但最后开发完毕打包时还是需要执行安装命令。
  • 注意2:依赖的传递性,若父项目依赖子项目1,则子项目1中添加的依赖(pom.xml中配置的依赖)则会自动添加到父项目的依赖中(父项目中pom.xml会自动添加)

    Maven(十二)Maven 依赖详解

    Maven(十二)Maven 依赖详解
  • 注意3:直接依赖和传递依赖
    • 父项目依赖子项目1,子项目1又依赖与子项目2,父项目与子项目1为直接依赖,子项目2与父项目为传递依赖。
    • 优点:可以传递的依赖可以不用重复声明,只需要在最底层声明一次。
    • 非compile范围的依赖不能传递,如test和provided,必须在各个项目间重复声明。

      Maven(十二)Maven 依赖详解

依赖的排除

  • 由于spring-core-4.0.0.RELEASE.jar依赖于commons-logging-1.1.1.jar

    若想吧spring-core的依赖commons-logging排除

    Maven(十二)Maven 依赖详解

  • 实现方法

    在pom.xml中添加如下代码

<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>

Maven(十二)Maven 依赖详解

获取坐标的方法

Maven(十二)Maven 依赖详解

Maven(十二)Maven 依赖详解

依赖的原则

  • 解决jar包冲突问题、模块工程的jar包的冲突
  • 路径最短者优先

    Maven(十二)Maven 依赖详解

  • 路径相同先声明者优先

    Maven(十二)Maven 依赖详解

    看denpendency标签的声明顺序

    Maven(十二)Maven 依赖详解