springboot整合swagger2依赖冲突问题解决思路

本文档描述了在Spring Boot项目中遇到的一个启动错误,问题源于spring-plugin-core版本冲突。错误信息提示尝试调用不存在的方法,导致应用无法正常启动。通过查看依赖关系图,发现Spring Data Rest的依赖引入了不同版本的spring-plugin-core,从而引发冲突。解决方法是排除Spring Data Rest的依赖,并确保依赖关系图中无冲突。完成这些步骤后,重启项目,问题得以解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实验环境

1.swagger版本
<dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>

列出问题:

Error starting ApplicationContext. To display the conditions report re-run your application with ‘debug’ enabled.
2021-07-11 09:09:39.075 ERROR 11656 — [ restartedMain] o.s.b.d.LoggingFailureAnalysisReporter :


APPLICATION FAILED TO START


Description:

An attempt was made to call a method that does not exist. The attempt was made from the following location:

org.springframework.hateoas.server.core.DelegatingLinkRelationProvider.<init>(DelegatingLinkRelationProvider.java:36)

The following method did not exist:

'org.springframework.plugin.core.PluginRegistry org.springframework.plugin.core.PluginRegistry.of(org.springframework.plugin.core.Plugin[])'

The method’s class, org.springframework.plugin.core.PluginRegistry, is available from the following locations:

jar:file:/D:/Environment/apache-maven-3.6.1/maven-repo/org/springframework/plugin/spring-plugin-core/1.2.0.RELEASE/spring-plugin-core-1.2.0.RELEASE.jar!/org/springframework/plugin/core/PluginRegistry.class

The class hierarchy was loaded from the following locations:

org.springframework.plugin.core.PluginRegistry: file:/D:/Environment/apache-maven-3.6.1/maven-repo/org/springframework/plugin/spring-plugin-core/1.2.0.RELEASE/spring-plugin-core-1.2.0.RELEASE.jar

Action:

Correct the classpath of your application so that it contains a single, compatible version of org.springframework.plugin.core.PluginRegistry

Process finished with exit code 0


大致意思就是jar包冲突,导入swagger依赖是默认会加载spring-plugin-core的jar包,它的版本是1.2.0,如下图:
在这里插入图片描述
重点: 不要因为报错提示The following method did not exist 就直接断定swagger自带的包不存在该方法,而在pom文件中强行修改spring-plugin-core的版本,应当先确定在当前项目中确实不存在该方法对应的jar并且依赖没有冲突,否则只会加深依赖之间的冲突 。


接下来我们便开始寻找与它冲突的jar包:

查找问题

首先查看依赖关系,找到如图的按钮,show Dependencies Dragrams 快捷键Ctrl+Alt+Shift+U
在这里插入图片描述
打开后如下图所示
依赖关系
找到红线两端的节点,双击即可跳入到对应的位置,找到对应的位置就可以进行排除,在这里我定位到了Spring Data Rest的依赖
在这里插入图片描述

在这里插入图片描述
在此处排除该依赖后,检查依赖关系图中是否还有红线(代表依赖冲突),直至全部排出后重启项目即可测试成功!


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值