Maven依赖

Maven依赖管理涉及依赖配置、范围及传递性。通过group+artifactId+version标识jar包,依赖范围包括编译、测试和运行阶段。依赖传递遵循最短路径优先、声明顺序优先和覆盖原则,冲突时需排除不必要的依赖。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Maven依赖管理

Maven依赖管理其实就是Maven软件对工程依赖的jar包进行统一管理。

1、依赖管理配置

在Maven工程的pom文件中通过group+artifactId+version来唯一标示仓库中的一个jar包,使用这种方式来管理项目所有依赖的服务。

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.11</version>
</dependency>
2、依赖范围

目前Maven范围分为三个阶段:编译范围,测试范围,运行范围。依赖范围指的是,项目依赖的jar包在三个范围中的哪个或哪些范围内有效。

compile:编译,测试,运行范围内都有效。这也是默认的依赖范围
test:在编译和测试范围内有效
provide:只在运行时范围内有效

依赖范围配置

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.11</version>
    //依赖范围配置
    <scope>test</scope>  
</dependency>
3、依赖传递

B项目依赖c.jar,如果此时A项目依赖B项目,则A项目也依赖c.jar。

依赖传递性

B依赖c.jar的依赖范围只能是compile的情况下,依赖才具有传递性。

依赖传递性原则:

统一jar包,被不同的项目依赖,会有不同的依赖原则。

  • 最短路径优先
    app1.0.jar依赖起效
    在这里插入图片描述
  • 声明顺序优先
    app1.0.jar依赖起效
    在这里插入图片描述
  • 覆盖原则
    一个pom文件中一个jar包依赖严禁声名多次,如果被多次声明则以最后一次声明的依赖为准。
依赖冲突解决

排除掉不需要的依赖

<dependency>
     <groupId>com.xxx</groupId>
     <artifactId>project-A</artifactId>
     <version>1.0</version>
     <!--将这里就是排除冲突的依赖-->
     <exclusions>
         <exclusion>
             <groupId>com.xxx</groupId>
             <artifactId>project-common</artifactId>
         </exclusion>
     </exclusions>
 </dependency>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值