Maven项目中,jar包版本冲突导致运行时报错的问题

在开发的过程中,我们难免会遇到各种jar包冲突,解决了就可以解决大部分的问题。

maven工程,一个artifact的jar包可能不只一处被依赖;有时候依赖会出现相同的artifact却不同版本,相互存在冲突,这时就需要exclude某个版本。

IntelliJ IDEA,该如何找某个artifact的全部依赖关系?

该工具有个Maven Projects窗口,一般在右侧能够找到,如果没有可以从菜单栏打开:View>Tool Windows>Maven Projects;

选择要分析的maven module(idea的module相当于eclipse的project),右击show dependencies,会出来该module的全部依赖关系图,非常清晰细致。

如果有冲突的版本,可以右击该版本的节点然后Exclude,对应的pom.xml就已经成功修改了。

(IntelliJ IDEA对于文件的修改都是实时保存的,无须Ctrl+S)

参考https://www.cnblogs.com/fanheyan/articles/7517633.html

也可以下载Maven Helper,导入IDEA中,这是更方便的解决办法。

先查看自己的IDEA版本,就在  help-about  中可以查看,比如我的是IntelliJ IDEA 2019.1.3 (Ultimate Edition)。

比如另一篇中说到的spark的冲突问题。

选中janino,右侧会有冲突的版本,选中并Exclude。即可运行成功。

Maven项目中,jar包版本冲突导致运行时报错的问题