首先我们需要知道的是依赖是依据Maven坐标定位的,而Maven坐标主要是由GAV(groupId、artifictId、version)构成。
如果你的本地Maven仓库有两个相同的依赖包,即使里面只有啥坐标都不一样,但Maven认为这两个依赖包依然是不同的。这样两个依赖包就会出现冲突。
如下,先点击Maven插件的show dependencies,然后发现swagger models依赖出现了两个,并且这两个依赖的版本是不同的,因此两者之间会发生冲突。
我们再看到自己本地Maven仓库也可以发现有两个不同版本的swagger-models依赖包
我解决这两个冲突是直接使用plugin插件中的maven-helper
这样下面就会出现Dependency Analyser(依赖分析)
我们直接点击Dependency Analyser,点击Conflicts冲突选项,就可以发现产生冲突的依赖是哪一个,在这里,是swagger-model依赖版本之间产生冲突,然后我们可以在maven插件中找到这两个依赖所在的位置
我们可以直接在发生依赖冲突的依赖上右键点击Exclude,去除该依赖
然后我们在点击refresh Ui,就会发现依赖冲突没有了,并且在maven插件中的依赖也消失了。
然后会发现原来引入冲突的依赖中加了一个Exclude标签
如果我们知道是该依赖引起的问题,也可以直接加入消除,但通过maven-helper可以更加直观的看到是什么依赖导致的问题。