• 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标签的声明顺序
      这里写图片描述

  • 相关阅读:
    设计模式之工厂模式
    在线预览插件pdf.js使用记录
    自学Python:自定义模块导入问题
    MVC流程
    关于django的一些基础知识
    day72 关于rbac组件的小部分面试题
    linux的简单操作和安装
    day71 菜单的排序 点击被选中
    day063 form 和modelform组件
    day051 django第二天 django初识代码
  • 原文地址:https://www.cnblogs.com/quinntian/p/9034266.html
Copyright © 2020-2023  润新知