作者:isysc1

小林的艳遇


小美的困惑(何为依赖冲突?)

小林,看了看屏幕

IDEA配置hive依赖jar包 idea加依赖包_IDEA配置hive依赖jar包

很明显,就是这个 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>

果然问题解决

IDEA配置hive依赖jar包 idea加依赖包_jar_02

再来一手 (批量解决依赖冲突)


小林 :“小美,你这个项目依赖冲突太多了,我们最好用 Maven Helper

IDEA配置hive依赖jar包 idea加依赖包_公众号_03

小美:“哇,这么好用,那你能教我怎么下载吗?”

小林:“当然可以啊,你可以点这个链接下载,然后在没有改 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配置hive依赖jar包 idea加依赖包_jar_04

  • 安装完毕后重启 idea

笨笨的小美不会用(Maven-Help 使用方法)

IDEA配置hive依赖jar包 idea加依赖包_jar_05


IDEA配置hive依赖jar包 idea加依赖包_json_06

IDEA配置hive依赖jar包 idea加依赖包_json_07