Maven

Maven依赖管理

学习地址:https://www.bilibili.com/video/BV1Ah411S7ZE?p=12&vd_source=fd479576740a013e7a8e2c54b5c901eb

1. Maven依赖冲突问题

在这里插入图片描述

  1. 路径优先的解释:如果log4j这个依赖一个出现在第2层级,一个出现在第4层级,第2层级的优先。
  2. 声明优先的解释:如果log4j这个依赖在被a这个1级依赖引用,属于2级依赖,同时也被b这个1级依赖引用,也属于2级依赖,那就看a和b这两个1级依赖谁的声明顺序靠前,前面的覆盖后面的。
  3. 特殊依赖的解释:如果不小心在一个层级中配置了log4j的两个不同版本,后面的覆盖前面的。

2. 可选依赖

在这里插入图片描述
如果不想让调用者看见自己引用了哪些依赖,optional标签设置成true就可以

3.排除依赖

在这里插入图片描述
exclusions标签代表排出的依赖的集合
exclusion代表排除的依赖的坐标(组织名、依赖名、版本),不用加版本号

Maven父子模块管理

1.标签作用

学习地址:https://blog.51cto.com/u_13423706/5818633

  1. module标签是声明子模块,如果项目有多个模块,需要一个个构建比较麻烦,通过在父模块中声明子模块,构建父模块就可以将所有的子模块构建。
  2. parent标签是声明该模块继承自哪个模块,可以得到父模块的所有依赖,不需要自己定义了,所以可以将所有子模块中用到的依赖,在父模块中引入。
  3. dependencyManagement标签用来统一管理依赖版本的,在这个标签下声明的依赖不会被子模块引入,但是子模块在声明依赖时,可以不写版本,直接继承父模块这个标签下的依赖的版本,降低依赖冲突的概率。

SpringCloud相关依赖全局版本控制

在父POM中的依赖管理标签中,添加spring-cloud-dependencies依赖,并通过properties配置依赖版本

<properties>
		<java.version>17</java.version>
		<spring-cloud.version>Hoxton.SR10</spring-cloud.version>
</properties>
<dependencyManagement>
		<dependencies>
			<!-- springCloud -->
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>${spring-cloud.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>
  • 23
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值