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在运行的时候依赖,在编译的时候不依赖

  • 相关阅读:
    【HDU2050】折线分割平面
    【Codevs1183】泥泞的道路
    Pair
    【Poj 1832】连环锁
    【Poj1090】Chain
    【UVa 10881】Piotr's Ants
    【Codeforces】665E Beautiful Subarrays
    【T^T】【周赛】第一周周赛——欢迎16级的新同学
    【OI新闻】2016.10.09
    二分图的最大匹配
  • 原文地址:https://www.cnblogs.com/chenmo-xpw/p/5453171.html
Copyright © 2011-2022 走看看