快盘下载:好资源、好软件、快快下载吧!

快盘排行|快盘最新

当前位置:首页软件教程电脑软件教程 → 一键解决maven依赖冲突IDEA插件

一键解决maven依赖冲突IDEA插件

时间:2022-10-19 18:09:33人气:作者:快盘下载我要评论

提示;本文主要介绍了一种自研IDEA插件;一键解决maven依赖冲突

一键解决maven依赖冲突-IDEA插件

  • 背景
  • 一、依赖冲突原因
  • maven依赖原则
  • 三、分析冲突jar包
    • 1. maven 命令方式
    • 2. Maven Helper 插件
    • 3. 一键解决jar冲突插件
      • 适用版本 2021.*
      • 安装方式
      • 使用方式
      • 使用后效果


背景

日常开发过程中解决maven依赖是件比较令人头疼的问题

未能及时发现并解决依赖冲突可能会让你的程序存在潜在的线上隐患;常见程序错误如下;

Caused by:java.lang.NoSuchMethodError
Caused by: java.lang.ClassNotFoundException
Caused by: java.lang.NoClassDefFoundError

一、依赖冲突原因

依赖冲突主要由于依赖传递引起的。每个显式声明的类包都会依赖于一些其它的隐式类包;这些隐式的类包会被maven间接引入进来;从而造成类包冲突。

maven依赖原则

  • 依赖管理优先
    优先按照dependencyMangement元素中指定的版本声明
  • 最短路径优先
    按照依赖传递关系;使用最近依赖版本
 A
  ├── B
  │   └── C
  │       └── D 2.0
  └── E
      └── D 1.0

D 1.0 在构建中将被使用

  • 声明顺序优先
    路径相同则按照依赖在pom.xml中被声明的顺序决定;定义在pom.xml顺序靠前的版本生效

三、分析冲突jar包

1. maven 命令方式

mvn -Dverbose dependency:tree

[INFO] ;- org.elasticsearch.client:transport:jar:7.12.0:compile
[INFO] |  ;- (org.elasticsearch:elasticsearch:jar:6.4.3:compile - version managed from 7.12.0; omitted for conflict with 7.12.0)
[INFO] |  ;- (org.elasticsearch.plugin:transport-netty4-client:jar:6.4.3:compile - version managed from 7.12.0; omitted for duplicate)
[INFO] |  ;- org.elasticsearch.plugin:reindex-client:jar:7.12.0:compile
[INFO] |  |  ;- (org.elasticsearch.client:elasticsearch-rest-client:jar:6.4.3:compile - version managed from 7.12.0; omitted for conflict with 7.12.0)
[INFO] |  |  - org.elasticsearch:elasticsearch-ssl-config:jar:7.12.0:compile
[INFO] |  |     - (org.elasticsearch:elasticsearch-core:jar:7.12.0:compile - omitted for duplicate)
[INFO] |  ;- (org.elasticsearch.plugin:lang-mustache-client:jar:7.12.0:compile - omitted for duplicate)
[INFO] |  ;- org.elasticsearch.plugin:percolator-client:jar:7.12.0:compile
[INFO] |  ;- (org.elasticsearch.plugin:parent-join-client:jar:7.12.0:compile - omitted for duplicate)
[INFO] |  - (org.elasticsearch.plugin:rank-eval-client:jar:7.12.0:compile - omitted for duplicate)

其中omitted for duplicate表示有jar包被重复依赖
omitted for conflict with 表示该jar包与其他引入jar存在版本冲突

2. Maven Helper 插件

文章推荐 https://blog.csdn.net/GyaoG/article/details/120599475

3. 一键解决jar冲突插件

本插件为自研插件;参考了58开源插件MavenManager , 主要采用依赖管理方式(dependencyManagement);一键解决maven项目中的jar包冲突 下载地址 ;EliminateMavenConflicts-1.0.jar

适用版本 2021.*

如果遇到不兼容情况可自行修改

安装方式

由于未发布到市场;只能采用IDEA 安装本地插件的方式
一键解决maven依赖冲突IDEA插件

使用方式

选中project ;或者 pom.xml; ——> 右键 —— > EliminateConflicts

使用后效果

在当前pom.xml 中自动排除jar冲突;添加dependencyManagement 片段;如有父子项目可将相关片段copy到父工程中,如下;

<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.Google.code.findbugs</groupId>
                <artifactId>jsr305</artifactId>
                <version>3.0.2</version>
            </dependency>
            <dependency>
                <groupId>com.google.errorprone</groupId>
                <artifactId>error_prone_annotations</artifactId>
                <version>2.1.3</version>
            </dependency>
            <dependency>
                <groupId>com.google.inject</groupId>
                <artifactId>guice</artifactId>
                <version>4.1.0</version>
            </dependency>
            <dependency>
                <groupId>com.google.protobuf</groupId>
                <artifactId>protobuf-java</artifactId>
                <version>3.9.0</version>
            </dependency>
       </dependencies>
</dependencyManagement>

一键解决maven依赖冲突IDEA插件

本文主要为大家介绍了一种自研IDEA maven依赖冲突解决插件

https://download.csdn.net/download/wangchl0932/86782940

网友评论

快盘下载暂未开通留言功能。

关于我们| 广告联络| 联系我们| 网站帮助| 免责声明| 软件发布

Copyright 2019-2029 【快快下载吧】 版权所有 快快下载吧 | 豫ICP备10006759号公安备案:41010502004165

声明: 快快下载吧上的所有软件和资料来源于互联网,仅供学习和研究使用,请测试后自行销毁,如有侵犯你版权的,请来信指出,本站将立即改正。