使用maven构建工程通常会引入一些相同的包,造成jar版本冲突,需要去除多余的,一般保留依赖关系较近,然后再考虑版本迭代。
在部署运行工程时根据日志信息可以找到一些冲突信息,例如在我本地项目中有一个servlet-api-2.5这个包和另一个包重复冲突了,如图:
通过pom.xml查看工程所依赖jar的依赖关系,可以发现,确实有两个版本的jar冲突了,如图:
这种情况通常保留依赖关系较近的的jar(不一定),有上图可以看出servlet-api-2.3.jar是由proxool.jar通过层层依赖引入,我们可以在proxool的依赖配置中滤除指定的jar,
如图:
只要的dependency标签内配置exclusions,为滤除的jar指定groupId和artifactId即可。