作者:isysc1
小林的艳遇
小美的困惑(何为依赖冲突?)
小林,看了看屏幕
很明显,就是这个 fastjson 包在捣鬼
小林冲小美笑了一笑,“小美啊,这个红色波浪线是因为依赖冲突,你看你的 fastjson 这个包,是不是显示 omitted for conflict with 1.2.47,这个意思就是你的 fastjson 包产生了冲突。我换个说法给你解释,就比如说你的项目中用了 A jar 包依赖 C jar 包, B jar 包也依赖 C jar包,Maven 就帮你下载了两个版本的 C jar 包,然后他们就产生了依赖冲突,这时Maven会依据依赖路径最短优先原则,来决定使用哪个版本的 jar 包,而另一个无用的jar包则未被使用,这就是所谓的依赖冲突。”
小美激动的望着小林,眼神里流露出一丝崇拜的眼神。
小林心里乐开了花,接着说:“其实吧,在大多数情况下,jar 包冲突是不会影响我们系统正常的运行的,但是不排除在一些极端的情景下会出现找不到类的异常
小美同意点了点头说,“小林,你会解决吗?”
小林微微一笑,“问题不大”
来吧,展示 (初步解决依赖冲突问题)
解决依赖冲突的方法,就是使用Maven提供的 exclusion 标签,exclusion 标签需要放在 标签内部,就像下面这样:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
<exclusions>
<exclusion>
<artifactId>fastjson</artifactId>
<groupId>com.alibaba</groupId>
</exclusion>
</exclusions>
</dependency>
果然问题解决
再来一手 (批量解决依赖冲突)
小林 :“小美,你这个项目依赖冲突太多了,我们最好用 Maven Helper
小美:“哇,这么好用,那你能教我怎么下载吗?”
小林:“当然可以啊,你可以点这个链接下载,然后在没有改 Idea 快捷键的情况下,按住 Ctrl + Alt + S 打开我们的 Settings,然后点击 Plguins ,选择 Install plguin from disk... ,选择中我们从官网下载的文件就可以啦,记得重启 Idea 哦 ”
小美:“好麻烦啊,上次项目组的王哥直接在 Idea 就在帮我装了 Lombok ,虽然我也不知道那是什么东西,但是他就是直接在 Idea 里面装的,超级厉害的”
小林:“我也会!”
- 还是一样,按住 Ctrl + Alt + S 打开我们的 Settings,选择 File -> Settings 也是可以的
- 选择 Plunins, 查询 Maven Helper,如果没有,点击 Search in repositories
- 选择 Maven Helper, 点击 Install
- 安装完毕后重启 idea
笨笨的小美不会用(Maven-Help 使用方法)