maven以来版本冲突一半是由于间接依赖导致一个jar包即使有多个不同的版本。
比如:A依赖了B的1.0版本,C依赖了B的2.0版本,项目依赖A和C从而间接依赖了B的1.0和2.0版本,此时B有两个版本引入到了项目中,当存在版本冲突时可能会出现ClassNotFoundException。NoSuchMethodError等错误。
解决办法:
1.使用exclusions排除依赖
比如:我们只依赖B的1.0版本,此时可以在依赖C时排除对B的依赖
2.使用dependencyManagement锁定版本号。
通常在父工程队依赖的版本同意管理。
比如:我们只依赖B的1.0版本,此时可以在父工程中限定B的版本为1.0