• Maven实战 --- dependencies与dependencyManagement


    https://blog.csdn.net/OiteBody/article/details/70882940

    如果你的项目有多个子模块,而且每个模块都需要引入依赖,但为了项目的正确运行,必须让所有的子项目(以下子项目即指子模块)使用依赖项的统一版本,

    在父项目的POM文件中,我们会使用到dependencyManagement元素。通过它来管理jar包的版本,让子项目中引用一个依赖而不用显示的列出版本号。Maven会沿着父子层次向上走,直到找到一个拥有dependencyManagement元素的项目,然后它就会使用在dependencyManagement元素中指定的版本号。

    dependencyManagement里只是声明依赖,并不实现引入,因此子项目需要显示的声明需要用的依赖。如果不在子项目中声明依赖,是不会从父项目中继承下来的;只有在子项目中写了该依赖项,并且没有指定具体版本,才会从父项目中继承该项,并且versionscope都读取自父pom;另外如果子项目中指定了版本号,那么会使用子项目中指定的jar版本。

    2019.11.28 做一个实践

        <dependency>
          <groupId>ch.qos.logback</groupId>
          <artifactId>logback-classic</artifactId>
          <version>1.2.3</version>
        </dependency>
    

    MyTest是MyMain父子关系项目,请注意,不仅是MyTest module中有MyMain,而且要求MyMain的parent是MyTest

    在MyMain下mvn dependency:tree 查看了一下(maven dependengcy:tree 查看maven依赖树(母项目指定pluginManagement)

    [INFO] +- ch.qos.logback:logback-classic:jar:1.2.3:compile
    [INFO] | +- ch.qos.logback:logback-core:jar:1.2.3:compile

     可以看到这个classic间接引用了core,都是1.2.3版本

    所有操作均是在MyMain 目录下mvn dependency:tree

    横母竖子

             cllassic / or no parent       classic-1.2.2        classic-1.2.2

             core / or no parent       core /            core-1.2.2

    classic-1.2.3   classic-1.2.3 core-1.2.3  classic-1.2.3 core-1.2.2    classic-1.2.3 core-1.2.2  --mvn dependency:tree

             idea,同上        classic-1.2.3 core-1.2.3    classic-1.2.3 core-1.2.2 core-1.2.3

  • 相关阅读:
    kernel 于ioctl申请书
    顺时针打印矩阵
    HDU 1557 权利指数 国家压缩 暴力
    从混沌到有序--熵
    分层思想总结
    什么是分层架构模式
    分层设计
    分层设计思想
    软件的生长方式
    设计模式、SOLID原则:组件与联系
  • 原文地址:https://www.cnblogs.com/silyvin/p/9196673.html
Copyright © 2020-2023  润新知