Maven依赖冲突解决之exclusions
1. 背景
- 作为java生态下开发者,往往需要使用大量线程的第三方库,一般都是以jar包形式存在。
- maven作为事实上主流的jar包依赖管理工具,Idea和Eclipse都支持创建maven工程来管理jar包依赖。
- 使用maven进行jar包依赖管理时,maven会自行管理jar包及其依赖链条,但往往会遇到依赖冲突问题,这时候就可以尝试使用exclusion来进行依赖管理。
2. 解决方式
-
场景
假如hadoop集群中hadoop版本是3.2.1,这时候为了保证程序能够顺利操作hadoop,需要引入hadoop-client的3.2.1版本。但这里也可以看到,spark-core_2.12内部也有对hadoop-client的依赖,而且版本是低版本的2.7.4,这时候往往就会产生冲突或者未知错误。所以需要使用exclusions做依赖排除。 -
解决方式
使用exclusions来对某一个第三方库引入的依赖jar包做排除
<dependency