(三)Maven依赖配置作用范围以及依赖排除

本文详细解析了Maven中dependency标签的scope属性,包括compile、test和provided三种作用范围,并解释了依赖的传递性。同时,介绍了如何通过exclusions标签排除不必要的依赖。了解这些有助于优化项目的构建配置,避免版本冲突并减小部署包的体积。
摘要由CSDN通过智能技术生成

依赖的配置

<dependency>
    <groupId>com.alibaba.cloud</groupId> --公司开发的项目名、以及公司名
    <artifactId>spring-cloud-alibaba-dependencoes</artifactId> --项目中的模块
    <version>2.2.5.RELEASE</version>  --指定模块的版本
    <type>pom</type>   --类型
    <scope>import</scope>  -- 依赖的作用范围
</dependency>

scope标签代表依赖的作用范围:
可选值:compile/test/provided

compile:在main目录(空间)、test目录(空间)、开发过程(时间)、部署到服务器(空间):均有效
test:在main目录(空间)无效、部署到服务器(时间)无效,其他均有效。
provided:在部署到服务器(时间)无效,其他均有效。

compile:通常使用的第三方框架的jar包,这样在项目实际运行时,真正用到的jar包,都是以conpile范围进行依赖的,比如SSM框架所需jar包。
test:测试过程中使用的jar包,以test范围依赖进来,如果junit。
provided:在开发过程中需要用到的“服务器上的jar包”通常以provided范围以来进来,比如service-api、jsp-api。而这个范围的jar包之所以不参与部署,不放进war包,就是避免和服务器上已有的同类jar包产生冲突,同时减轻服务器的负担,说白了就是:“服务器已有 该jiar包”

依赖的传递性

A依赖B、B依赖C,A没有依赖C。
如果C在B中的作用范围是compile范围,则A也能够使用C。

如果此时A不想依赖C,则需要对依赖进行排除。比如版本冲突等等。

此时需要exclusions标签,B依赖C,则需要在B中配置。

<dependency>
   <groupId>com.alibaba.cloud</groupId>
   <artifactId>spring-cloud-alibaba-dependencoes</artifactId>
   <version>2.2.5.RELEASE</version>
   <scope>compile</scope>
<!--使用exclusions标签配置依赖排除-->
    <exclusions>
<!--在exclude标签中配置一个具体的排除-->
     <exclusion>
<!-- 指定要排除的依赖坐标,此时不需要写version-->
     <groupId>xxx.xx</groupId>
     <artifactId>yyy.yyy</artifactId>
     </exclusion>
   </exclusions>
/dependency>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值