Maven作为依赖冲突解决的exclusions 1.背景java生态开发者,经常需要使用大量线程的第三方库,一般作为jar包存在。 maven作为主流的jar包依赖管理工具,Idea和Eclipse支持创建maven项目来管理jar包依赖。 使用maven对jar包进行依赖管理时,maven会自己管理jar包及其依赖链,但经常会出现依赖冲突问题。 在这种情况下,请尝试使用exclusion进行依赖管理。 2 .解决方法场景
假设hadoop群集的hadoop版本为3.2.1,则需要引入hadoop-client的3.2.1版,以便程序可以顺利操作hadoop。 但是,同样可以看到,spark-core_2.12内部也存在对hadoop-client的依赖,如果版本是较低版本的2.7.4,往往会发生冲突和未知错误。 所以需要用exclusions进行依存排除。
解决方法
使用exclusions排除从第三方库中引入的依赖jar包
ependencygroupidorg.Apache.spark/groupidartifactidspark-core _ 2.12/artifactidversion $ { spark.version }/versionexclusionsexclusiongroupidorg.Apache.Hadoop/groupidartifactidhadoop-client/artifact id/exclusiongrousion grous