• 验证:maven依赖传递(看懂公司java项目必备基础)


    前言

    想看懂公司的java项目,maven相关的知识不能少(如果是通过maven管理项目、依赖)

    项目结构

    父pom中有fastjson依赖(父项目的pom中有被依赖的内容)

    版本是1.2.75

    子项目mvn01的pom中额外指定版本(mvn02和mvn03中不写fastjson的依赖)

    mvn01是自己的版本,mvn02和mvn03都是父pom中的版本,说明在依赖传递的时候,继承(mvn01继承了父项目)大于依赖,02和03中,把mvn01的版本被覆盖为父pom中的版本

    子项目mvn01依赖fastjson不指定版本,mvn02的pom中额外指定版本

    mvn01是父pom的版本,mvn02用自己指定的,mvn03用父pom中的版本,说明在依赖传递的时候,继承(mvn02继承了父项目)大于依赖,03中把mvn02的版本被覆盖为父pom中的版本

    重新打开项目

    mvn01和mvn02都添加fastjson依赖,且指定不同版本

    父:1.2.75

    mvn01:1.2.80 

    mvn02:1.2.78

    下图说明继承大于依赖,03中把01和02都覆盖为父项目的版本

    mvn01、mvn02、mvn04都添加fastjson依赖,且指定不同版本

    父:1.2.75

    mvn01:1.2.80

    mvn02:1.2.78

    mvn02:1.2.79

    mvn03的依赖中,mvn02在上面

    下图说明继承大于依赖,03中把01、02、04都覆盖为父项目的版本

    mvn03的依赖中,mvn04在上面

    下图说明继承大于依赖,03中把01、02、04都覆盖为父项目的版本

      

    父pom中没有fastjson依赖(父项目的pom中有被依赖的内容)--重点

    mvn03依赖一个子项目

    注释掉fastjson

    mvn01添加的依赖:1.2.47

    mvn02添加的依赖:1.2.75

    mvn04添加的依赖:1.2.79

    重新打开项目,omitted for duplicate表示重复省略,

    mvn01自己的,mvn02自己的,mvn02中,把依赖自mvn01的版本替换为自己的了;mvn03中,用mvn02的版本,说明那个近用哪个

    mvn03依赖多个子项目

    添加mvn04

    mvn03同时依赖mvn02和mvn04,mvn02在上面

    哪个在上面,03就用哪个

    mvn03同时依赖mvn02和mvn04,mvn04在上面

    哪个在上面,03就用哪个

    mvn03同时依赖mvn02和mvn04,mvn04在上面,但是想用mvn02的

    添加排除,exclusion的版本不用指定

  • 相关阅读:
    window 窗口对象 Javascript语言描述
    ASP.NET JScript公共类(非常有用)
    ASP.NET上传文件函数
    C#两种方式获取指定文件夹下所有子目录及文件
    模式窗口showModalDialog的用法总结
    DetailsView结合fileupload的使用
    JS连续向上滚动代码
    【原创】C# 递归获取指定目录的子目录及其所有文件
    【原创】C# 将虚拟目录下文件转换成DataTable
    【原创】ASP.NET C# 获取指定目录文件的排序和删除
  • 原文地址:https://www.cnblogs.com/uncleyong/p/16122866.html
Copyright © 2020-2023  润新知