背景

对maven的jar包引入的理解

按优先级降级

    ●直接依赖(当前项目含有depency)
        1.当前项目的depency版本
        2.当前项目的depencymanagment
        3.当前项目继承的depencymanagment
    ●间接依赖(当前项目无depency)
        1.当前项目的depencymanagment
        2.当前项目继承的depencymanagment
        3.被依赖项目的depency版本
        4.被依赖项目的depencymanagment
        5.被依赖项目继承的depencymanagment

例子

    ●springbootparent为父,指定了depencymanagment,kafka版本为2.0.1
    ●project为子,分情况讨论,如果指定版本的话,为2.5.0
    ●kafka-api为被依赖项目,kafka版本为3.4.0

project分情况讨论
    ●有父,有kafka-api
        1.depency指定kafka,指定版本,kafka为直接依赖,版本为2.5.0
        2.depency指定kafka,不指定版本,kafka为直接依赖,使用继承的depencymanagment,版本为2.0.1
        3.depency不指定kafka,kafka为间接依赖,使用继承的depencymanagment,版本为2.0.1
    ●有父,无kafka-api
        1.depency指定kafka,指定版本,kafka为直接依赖,版本为2.5.0
        2.depency指定kafka,不指定版本,kafka为直接依赖,使用继承的depencymanagment,版本为2.0.1
        3.depency不指定kafka,无kafka
    ●无父,有kafka-api
        1.depency指定kafka,指定版本,kafka为直接依赖,版本为2.5.0
        2.depency指定kafka,不指定版本,kafka为直接依赖,行为不可预测,可能报错,也可能沿用之前成功引入过的版本
        3.depency不指定kafka,kafka为间接依赖,版本为3.4.0
    ●无父,无kafka-api
        1.depency指定kafka,指定版本,kafka为直接依赖,版本为2.5.0
        2.depency指定kafka,不指定版本,kafka为直接依赖,行为不可预测,可能报错,也可能沿用之前成功引入过的版本
        3.depency不指定kafka,无kafka

点墨
26 声望3 粉丝

全栈前端开发工程师