maven版本冲突解决

maven版本冲突解决

maven两大功能:依赖管理和一键构建

依赖管理:分为直接依赖和间接依赖

直接依赖:在pom文件中直接导入的jar包坐标,直接依赖于次jar包
间接依赖:A依赖于B,B依赖于C,那么A间接依赖于C
解决jar包冲突的三个原则:

  1. 第一声明优先原则,pom坐标在最上面的优先
  2. 路径近者优先原则,如果A直接依赖于B1,间接依赖于B2,那么B1优先
  3. jar包排除,在 dependency 标签中使用 exclusion 标签进行排除
<dependencyManagement>
	<dependencies>
		<dependency>
			<groupId>org.springframework.bootgroupId>
			<artifactId>spring-boot-dependenciesartifactId>
			<version>${spring-boot.version}version>
			<exclusions>
				<exclusion>
					<groupId>org.springframeworkgroupId>
					<artifactId>spring-beansartifactId>
				exclusion>
			exclusions>
			<type>pomtype>
			<scope>importscope>
		dependency>
	dependencies>
dependencyManagement>

版本锁定

  1. 使用 properties 标签进行版本的声明,properties 标签中是键值对的形式,以下声明了一个jar的版本号
<properties>
	<spring-boot.version>2.1.5.RELEASEspring-boot.version>
properties>
  1. 使用 dependencyManagement 标签,内嵌 dependencies 标签,以下使用上面的版本号进行锁定
<dependencyManagement>
	<dependencies>
		<dependency>
			<groupId>org.springframework.bootgroupId>
			<artifactId>spring-boot-dependenciesartifactId>
			<version>${spring-boot.version}version>
			<type>pomtype>
			<scope>importscope>
		dependency>
	dependencies>
dependencyManagement>
  1. **说明:**锁定版本号不代表已经引入了此jar包,需要单独声明

你可能感兴趣的:(maven)