maven的scope=import修改传递依赖的版本

1月 5, 2022 |

mybatis-plus-boot-starter依赖spring-boot-starter-jdbc
当项目中spring-boot版本和mybatis-plus-boot-starter传递依赖的版本不一致会抛各种异常

如果我们将>mybatis-plus-boot-starter对低版本的spring-boot依赖直接exclude,那么在每个使用的地方都需要修改,很麻烦,所以import 一个高版本的依赖是更优雅的做法,

也就是如下配置

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-dependencies</artifactId>
	<version>${spring-boot.version}</version>
	<type>pom</type>
	<scope>import</scope>
</dependency>

<dependency>
	<groupId>com.baomidou</groupId>
	<artifactId>mybatis-plus-boot-starter</artifactId>
	<version>3.2.0</version>
	<exclusions>
		<exclusion>
			<groupId>com.zaxxer</groupId>
			<artifactId>HikariCP</artifactId>
		</exclusion>
	</exclusions>
</dependency>

scope=import
import范围只能在<dependencymanagement>节点下使用,将指定依赖(本例spring-boot-dependencies)中<dependencymanagement>节点信息导入当前<dependencymanagement>节点下,所以本例spring-boot-dependencies的packaging必须为pom

我们定义的模块最好将依赖也统一到packaging=pom的管理模块的<dependencymanagement>节点下,便于集成方调整被依赖jar的版本

Posted in: spring practise

Comments are closed.