Maven不依赖于exclusion的用法
假设存在以下依存关系:
a-B-C(1.0 ) ) ) ) ) ) ) ) ) ) ) a-B-C(1.0 ) )。
项目b依赖于项目c的1.0版,由于项目c很活跃,此时已经升级了一些版本。 例如,它已升级到4.0版。 为了相关性的传递性,根据此相关性链: a-b-c(1.0 ),a项目缺省加载C的1.0版。 如何使用C的4.0版? 我们在对b的依赖声明中排除了c,以下声明依赖于c的4.0版。
pom的构成如下。
ependenciesdependencygroupidorg.example/groupidartifactidproject-b/artifactidversion 1.0.0/versionexclusionsexclllllionsexclexclllidexcoretidvetidvexprvetidvetidvetttt artifact id/exclusion/exclusions/dependencydependencygroupidcom.domain/groupidartifaction artifaction4.0.0/0/0 dependencies一些人可能注意到了,实际上不需要使用exclusion,而是直接声明对project-c的依赖,根据最短路径原则直接依赖project
如果上面的例子不足以说服你,以下情况真的需要使用exclusion标签。
如果C项目是一个非常强大的项目,具有很多功能,我也只需要使用其中的一部分就能满足项目的需要。 如果C的强大功能是通过加载许多依赖来实现的,则可以排除对C的依赖,只保留需要的部分。