美文网首页
maven版本依赖原理解析

maven版本依赖原理解析

作者: 乌木山 | 来源:发表于2020-06-10 23:50 被阅读0次

    依赖传递

    maven的依赖,可以形象的展示为一颗树,每一个节点都可以引入更多的依赖节点。那么当依赖树引入了一个包的多个版本,maven如何决定使用哪一个版本呢?原理很简单:最短路径
    如何理解最短路径

    1. 层级越少的,优先级越高。
    2. 同一层级的,越靠前,优先级越高。

    依赖范围

    依赖范围一共包括如下几种,分别代表的是jar包在什么环节要被引入。

    • compile
      这个是默认的依赖范围,代表从编译阶段就需要被引入。

    • provided
      这个代表该依赖在运行时runtime是由jdk或者容器来提供,无需引入。因此provided的包只有在本地编译和测试环节才会被引入,运行时不会被引入。比如我们常见的servlet-api的包,就会申明为provided阶段。

    • runtime
      运行时依赖,代表这个包在编译的时候是不需要的,只有在运行时以及测试时才需要被依赖。

    • test
      代表这个包在生产环境是不需要的,只有在执行test时才需要。

    • system

    • import
      <dependencyManagement>使用时,可以将其他的POM类型的<dependencyManagement>通过 import的方式引入,从而构建出整体所需的一个依赖管理集合。
      依赖排除

    参考资料

    https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html

    相关文章

      网友评论

          本文标题:maven版本依赖原理解析

          本文链接:https://www.haomeiwen.com/subject/zfattktx.html