经常遇到jar包冲突问题,今天梳理一下:
1、打开idea
2、安装后 打开pom文件
点击
3、点击common-io
展示冲突的jar,标红的就是冲突版本,白色的是当前的解析版本。
pom文件多了排除的信息
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-openfeign-core</artifactId>
<exclusions>
<exclusion>
<artifactId>commons-io</artifactId>
<groupId>commons-io</groupId>
</exclusion>
</exclusions>
</dependency>
#注释如下
<dependency>
<groupId>冲突依赖的groupId</groupId>
<artifactId>冲突依赖的artifactId</artifactId>
<version>冲突依赖的版本</version>
<exclusions>
<exclusion>
<groupId>要排除的传递性依赖的groupId</groupId>
<artifactId>要排除的传递性依赖的artifactId</artifactId>
</exclusion>
</exclusions>
</dependency>
4、排除指定的版本
刷新后冲突消失
显示无冲突
二、测试验证
1、gt-main 包的验证
gt-main 是 GeoTools 库的核心模块之一,它依赖于多个子模块来提供 GIS 功能。这些子模块在处理地理数据的不同方面扮演着重要角色。gt-main 本身主要是 GeoTools 框架的核心功能,但它依赖的子模块包括:
gt-opengis: 用于实现 OpenGIS 标准的接口。
gt-api: 提供 GeoTools 的通用 API 和接口。
gt-referencing: 处理空间参考系(CRS)和坐标转换。
gt-data: 处理数据源和数据存储。
gt-coverage: 支持栅格数据的处理和操作。
这些模块共同支持 gt-main,提供对不同地理信息处理和数据格式的支持。
但是gt-main源码包的pom文件中没有找到gt-opengis 配置
因此,只能收到添加到pom文件了
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-opengis</artifactId>
<version>28.0</version>
</dependency>
2、通过命令查看是否有jar包冲突
mvn dependency:tree
mvn dependency:tree -Dverbose -Dincludes=要查询的jar包
#首先可以在上图中看出来该jar包所对应pom.xml配置的groupId和artifactId为jakarta.validation:jakarta.validation-api,中间是冒号分隔的,
dependency:tree
:表示树状显示。-Dverbose
:表示可以显示所有的引用,包括因为多次引用重复而忽略的。-Dincludes
:可以制定查询条件
显示结果
到此,暂时分享告一段落,后续继续更新,敬请期待!