飞道的博客

3分钟为女同事解决Maven依赖冲突,这样操作,它不香吗?

474人阅读  评论(0)

小林的艳遇

这天小林无所事事准备下班,突然听见隔壁小美在哭泣,正(hao)义(se)的小林过去关切的问 “小美,你怎么了?是不是被该死的王经理欺负了?”,

小美抽泣着点点头 “经理叫我把这个 Maven 的红色波浪线去掉,可是我一直去不掉。”

正(hao)义(se)的小林心想又是一次约女神吃饭的好机会,小林立马说 “交给我了,这么晚了,我弄完一起吃个饭啊?”

小美看着小林说,“你真的可以吗?”

小林拍了拍胸脯说 “男人,有什么不行的”

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

小林,看了看屏幕

 

很明显,就是这个 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 包冲突是不会影响我们系统正常的运行的,但是不排除在一些极端的情景下会出现找不到类的异常 ,我们作为一名严谨的程序员(为了 KPI 考虑),一定要把这个问题解决掉”

小美同意点了点头说,“小林,你会解决吗?”

小林微微一笑,“问题不大”

来吧,展示 (初步解决依赖冲突问题)

解决依赖冲突的方法,就是使用Maven提供的 exclusion 标签,exclusion 标签需要放在 标签内部,就像下面这样:


  
  1. <dependency>
  2. <groupId>org.springframework.cloud </groupId>
  3. <artifactId>spring-cloud-starter-alibaba-sentinel </artifactId>
  4. <exclusions>
  5. <exclusion>
  6. <artifactId>fastjson </artifactId>
  7. <groupId>com.alibaba </groupId>
  8. </exclusion>
  9. </exclusions>
  10. </dependency>

果然问题解决

 

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

小美:“小林,你太厉害了吧,我这还有个项目,你能都帮我解决下红色波浪线吗?解决完我们就去楼下的沙县小吃吃饭”

小林随意挥挥手,“小case”

小美点开了一个新的项目,小林彻底吓呆,竟然有20多处红色波浪线,小林心想 “这样一个个 exclusion,隔壁老王的孩子都能去沙县打酱油了

呸呸呸。想歪了,还是帮小美解决问题吧。

小林 :“小美,你这个项目依赖冲突太多了,我们最好用 Maven Helper 这个 Idea 插件来解决这个问题,好多人都在用,官网上好评如潮”

 

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

小林:“当然可以啊,你可以点这个链接下载,然后在没有改 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 使用方法)

 

崇拜 + 1 (Idea 自带查看依赖冲突的方法)

小林 :“小美,你懂了吧,就是这样这样,那样那样,就可以解决依赖冲突啦,接下来我在教你一手,也很实用哦”

小美:“好啊,小林,你人也太好了吧”

小林:“what?这是好人卡吗?”

小林:“你这样这样,那样那样,就可以查看Maven依赖关系结构图。红色的就是依赖冲突的地方,蓝色就是正常的依赖,当然你也可以Ctrl+Alt+Shift+U,也可以查看哦”

 

 

小林:“小美,我们去吃饭?”

小美:“可以啊,可是楼下沙县关门了,我们下次吧,我先下班回家啦”

小林默默呆在原地,流下了工具人的泪水!

END!

作者:isysc1

链接:https://juejin.im/post/5f0d904ae51d453495701989

来源:掘金


转载:https://blog.csdn.net/GYHYCX/article/details/108550188
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场