Maven中的依赖管理

简介: Maven中的依赖管理

1. 依赖配置


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

<!-- 设置当前项目所依赖的所有jar--> 
<dependencies> 
    <!— 设置具体的依赖--> 
    <dependency> 
        <!— 依赖所属群组id--> 
        <groupId>junit</groupId> 
        <!— 依赖所属项目id--> 
        <artifactId>junit</artifactId> 
        <!— 依赖版本号--> 
        <version>4.12</version>
    </dependency>
</dependencies>


2. 依赖传递


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

间接依赖:项目的依赖如果依赖其他资源,当前项目间接依赖其他资源

1673456601118.jpg

2.1 依赖传递冲突问题


路径优先:当依赖中出现相同的资源时,层级越深,优先级越低,层级越浅,优先级越高

声明优先:当资源在相同的层级被依赖时,配置的顺序靠前的覆盖配置顺序靠后的

特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的(在一个pom中)

1673456618160.jpg


2.2 可选依赖


可选依赖指对外隐藏当前所以来的资源–不透明

<dependency> 
    <groupId>junit</groupId> 
    <artifactId>junit</artifactId> 
    <version>4.12</version> 
    <optional>true</optional>
</dependency>


2.3 排除依赖


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

<dependency> 
    <groupId>junit</groupId> 
    <artifactId>junit</artifactId> 
    <version>4.12</version> 
    <exclusions> 
        <exclusion> 
            <groupId>org.hamcrest</groupId> 
            <artifactId>hamcrest-core</artifactId>
        </exclusion>
    </exclusions>
</dependency>


3. 依赖范围


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


作用范围

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

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

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


scope 主代码 测试代码 打包 示例
compole(默认) Y Y Y log4j
test Y junit
provided Y Y servlet-api
runtime Y jdbc


4. 依赖范围传递性


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

1673456558554.jpg

相关文章
|
3月前
|
Java Maven 容器
java依赖冲突解决问题之Maven在编译打包过程中对依赖的jar包如何解决
java依赖冲突解决问题之Maven在编译打包过程中对依赖的jar包如何解决
|
7天前
|
Java Maven
maven打瘦包,且只打入部分想打入的依赖瘦包
maven打瘦包,且只打入部分想打入的依赖瘦包 设计 工程结构分析 环境管理 城市资源 安全工程 工程管理
34 10
|
20天前
|
Java API Apache
除了 Maven,还有哪些工具可以管理项目的依赖和版本冲突
除了Maven,常用的项目依赖管理和版本冲突解决工具有Gradle、Ivy、Ant+Ivy、SBT等。这些工具各有特点,适用于不同的开发环境和需求。
|
1月前
|
XML 安全 Java
【Maven】依赖管理,Maven仓库,Maven核心功能
【Maven】依赖管理,Maven仓库,Maven核心功能
489 3
|
1月前
|
Java Maven
Maven 依赖管理
Maven 一个核心的特性就是依赖管理。当我们处理多模块的项目(包含成百上千个模块或者子项目),模块间的依赖关系就变得非常复杂,管理也变得很困难。针对此种情形,Maven 提供了一种高度控制的方法。
65 5
|
2月前
|
Java Maven
Maven 引入外部依赖
如果我们需要引入第三方库文件到项目,该怎么操作呢?
35 5
|
3月前
|
安全 Java Maven
优化Maven镜像配置:使用阿里云加速依赖下载
更新Maven镜像配置至关重要,尤其使用阿里云仓库时。在`settings.xml`中加入特定镜像配置可显著提升依赖下载速度。示例配置指定了阿里云镜像ID、替代表态仓库、安全的URL、默认布局及启用版本管理。需定位至用户目录下的`.m2/`文件夹编辑`settings.xml`,添加镜像信息后保存测试。若下载仍慢,考虑网络状况或备选镜像。多镜像设置时需注意避免冲突。
530 3
|
3月前
|
Java 测试技术 Maven
单元测试问题之在Maven项目中引入JUnit 5和Mockito的依赖如何解决
单元测试问题之在Maven项目中引入JUnit 5和Mockito的依赖如何解决
187 1
|
3月前
|
Java Maven
intellij idea如何查看项目maven依赖关系图
这篇文章介绍了如何在IntelliJ IDEA中查看项目的Maven依赖关系图,包括使用Maven工具栏和相关操作来展示和查看依赖细节。
|
4月前
|
Java Maven
idea安装并使用maven依赖分析插件:Maven Helper
idea安装并使用maven依赖分析插件:Maven Helper
2504 7