依赖的配置
<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>