问题描述以及解决方法:
项目中使用了bcprov-jdk15to18 pom依赖,但是发现代码中引入的版本不正确。
追溯代码发现版本引入的是bcprov-jdk15on,而不是bcprov-jdk15to18,但是我找了半天pom依赖也没有发现有引入bcprov-jdk15on依赖。所以判断这个包肯定是其它依赖中包含的,需要exclude掉。
解决:
spring-cloud-starter-netflix-eureka-client依赖中会自带bcprov-jdk15on包和bcpkix-jdk15on包,因此导入bcprov-jdk15to18包使用时在类中会默认导入的是bcprov-jdk15on包,这时需要将bcprov-jdk15on依赖从spring-cloud-starter-netflix-eureka-client中exclude掉,解决冲突问题。
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId><exclusions><exclusion><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk15on</artifactId></exclusion></exclusions>
</dependency>
参考链接:https://blog.csdn.net/Lemon_MY/article/details/108347316
查看maven依赖关系图:
exclude掉spring-cloud-starter-netflix-eureka-client依赖中的bcprov-jdk15on包后,有可能还会有其它的依赖也存在该包,所以需要查看maven依赖关系图,来确保,该包是否全部被exclude掉了。
查看maven依赖关系图 需要安装maven helper工具。在plugins——》Marketplace 中搜索安装Maven Helper插件;
安装完成之后点击对应的pom.xml就会看到有多出一个Dependency Analyzer的选项,点击就能看到对应的maven依赖的关系图,可以通过filter搜索自己想要查找的依赖。