zoukankan      html  css  js  c++  java
  • maven依赖传递关系

    一、maven 依赖传递规则

    举个例子,比如A依赖B,B依赖C,那么A也是依赖C的。A是对B的直接依赖,A对C是传递依赖

    ①、最短路劲原则

    如,路劲一:A依赖B,B依赖C,C依赖D(1.0.0);

      路劲二:A依赖E,E依赖D(2.0.0),

    此时A间接依赖D版本是2.0.0!

    ②、最先定义原则

    如,路劲一:A依赖B,B依赖C(1.0.0);

      路劲二:A依赖E,E依赖C(2.0.0),

    此时A间接依赖C版本是1.0.0!

    题外话,如果想精确的控制依赖包版本,可以使用依赖的排除功能——>exclusions来排除

     二、依赖传递的作用域

    在dependency配置中如果没有写scope默认就是compile范围,依赖的传递主要是针对compile作用域

    依赖的范围:

            test范围指的是测试范围有效,在编译和打包时都不会使用这个依赖

            compile范围指的是编译范围有效,在编译和打包时都会将依赖存储进去

            provided范围指的是在编译和测试的过程有效,最后生成war包时不会加入,诸如:servlet-api,因为servlet-api,tomcat等web服务器已经存在了,如果再打包会冲突

            runtime在运行的时候依赖,在编译的时候不依赖

  • 相关阅读:
    tomcat对sessionId的处理分析
    MySQL 5.5 新增SIGNAL异常处理
    jetty对sessionId的处理分析
    Python3.x和Python2.x的区别
    java actor模型和消息传递简单示例
    构建工具scons让一切变得简单
    HTML元素控件事件表
    开始新的旅途
    JS各种常见知识点
    C#代码与javaScript函数的相互调用
  • 原文地址:https://www.cnblogs.com/chenmo-xpw/p/5453171.html
Copyright © 2011-2022 走看看