提示;本文主要介绍了一种自研IDEA插件;一键解决maven依赖冲突
日常开发过程中解决maven依赖是件比较令人头疼的问题
未能及时发现并解决依赖冲突可能会让你的程序存在潜在的线上隐患;常见程序错误如下;
Caused by:java.lang.NoSuchMethodError
Caused by: java.lang.ClassNotFoundException
Caused by: java.lang.NoClassDefFoundError
依赖冲突主要由于依赖传递引起的。每个显式声明的类包都会依赖于一些其它的隐式类包;这些隐式的类包会被maven间接引入进来;从而造成类包冲突。
A ├── B │ └── C │ └── D 2.0 └── E └── D 1.0
D 1.0 在构建中将被使用
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存在版本冲突
文章推荐 https://blog.csdn.net/GyaoG/article/details/120599475
本插件为自研插件;参考了58开源插件MavenManager , 主要采用依赖管理方式(dependencyManagement);一键解决maven项目中的jar包冲突 下载地址 ;EliminateMavenConflicts-1.0.jar
如果遇到不兼容情况可自行修改
由于未发布到市场;只能采用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>
本文主要为大家介绍了一种自研IDEA maven依赖冲突解决插件
https://download.csdn.net/download/wangchl0932/86782940