首页 > 其他分享 >MVN3️⃣依赖管理 & 生命周期及插件

MVN3️⃣依赖管理 & 生命周期及插件

时间:2022-09-02 18:23:32浏览次数:56  
标签:MVN3 插件 生命周期 依赖 项目 传递 导入

1、依赖管理

1.1、依赖配置

依赖:当前项目运行所需要的 jar 包。

  • 一个项目可以导入多个依赖,项目本身可作为依赖被导入。

  • 配置方式:dependencies - dependency - gav。

    <!-- 项目依赖 -->
    <dependencies>
        <!--具体依赖 -->
        <dependency>
            <!-- GAV 坐标 -->
            <groupId></groupId>>
            <artifactId></artifactId>
            <version></version>
        </dependency>
    </dependencies>
    

1.2、依赖传递(❗)

1.2.1、传递性

依赖具有传递性。

相对于当前项目,分为直接传递和间接传递。

  • 直接传递:通过依赖配置建立的依赖关系(A 导入 B,则 AB 是直接传递)

  • 间接传递:通过依赖配置间接建立的依赖关系(A 导入 B、B 导入 C,则 AC 是间接传递)

    image-20220902174127818

1.2.2、冲突问题

依赖中出现相同资源时,存在冲突问题。

冲突解决策略:按以下顺序处理

  1. 路径优先:资源相同,优先使用层级越浅的。

    image-20220902175302127

  2. 声明优先:层级相同,优先使用先声明的。

    image-20220902175456273

特殊情况:一个项目中直接导入了相同资源的不同版本,使用后声明的。

示例:项目中同时导入 JUnit 的两个版本,优先使用 4.12

<dependencies>
    <!-- 先声明 -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.27</version>
    </dependency>
    <!-- 后声明

标签:MVN3,插件,生命周期,依赖,项目,传递,导入
From: https://www.cnblogs.com/secretmrj/p/16650876.html

相关文章