• maven中的依赖管理


    依赖管理的结果直接在idea右侧看即可

     

    依赖配置

    依赖指运行当前项目所需的jar,一个项目可以设置多个依赖。

    1. <dependencies>
    2. <dependency>
    3. <groupId>junitgroupId>
    4. <artifactId>junitartifactId>
    5. <version>4.9version>
    6. <scope>testscope>
    7. dependency>
    8. dependencies>

    依赖传递

    This means that if A depends on B and B depends on C, then A depends on both B and C.

    直接依赖:在当前项目中通过依赖配置建立的依赖。

    间接依赖:如果“直接依赖”依赖其他资源,那么当前项目间接依赖其他资源。

    相同依赖不同版本怎么选

    假如依赖们在不同层,路径优先:选层浅的。

    假如依赖们在同一层,声明优先:前面的配置覆盖后面的配置。

    假如依赖们都是直接依赖,后面的配置覆盖前面的配置。

    可选依赖

    可选依赖在直接项目之外是隐藏的-----不透明

    假如java-project这个项目配置可选依赖如下:

    1. <dependency>
    2. <groupId>junitgroupId>
    3. <artifactId>junitartifactId>
    4. <version>4.12version>
    5. <optional>trueoptional>
    6. dependency>

    java01这个项目依赖上面这个项目:

    1. <dependency>
    2. <groupId>org.examplegroupId>
    3. <artifactId>java-projectartifactId>
    4. <version>1.0-SNAPSHOTversion>
    5. dependency>

     那么java01就看不到junit 4.12这个依赖:

     

    排除依赖

    排除依赖指主动断开依赖的资源,被排除的资源无需指定版本------不需要

    1. <dependency>
    2. <groupId>junitgroupId>
    3. <artifactId>junitartifactId>
    4. <version>4.12version>
    5. <exclusions>
    6. <exclusion>
    7. <groupId>org.hamcrestgroupId>
    8. <artifactId>hamcrest-coreartifactId>
    9. exclusion>
    10. exclusions>
    11. dependency>

     

    依赖作用范围

    默认情况下依赖的jar可以在项目的任何地方被使用,可以通过scope标签设定其作用范围。

    作用范围:

            主程序有效(main文件夹范围内)

            测试程序有效(test文件夹范围内)

            是否参与打包(package指令范围内)

    依赖作用范围的传递性

    带有依赖作用范围的资源在进行传递时,作用范围将受到影响。

  • 相关阅读:
    【2022-09-14】JS逆向之某团影视(jsjiami-v5)
    Win10不能访问共享硬盘怎么办
    构造函数及es6类写单例模式
    死锁问题概述
    DCloud之Android原生工程配置
    基于模型的系统工程(MBSE)
    zerotier充当网关实现内网互联,访问其它节点内网
    springboot+vue项目部署配置开机自启动
    沉睡者IT - 十月之后「牛市」还是「熊市」
    C和C++教程
  • 原文地址:https://blog.csdn.net/daqi1983/article/details/128078838