我将我的弹簧启动版本从1.5.4更新为1.5.6,现在我收到此错误。
java.lang.NoSuchMethodError: org.springframework.data.repository.config.AnnotationRepositoryConfigurationSource.<init>(Lorg/springframework/core/type/AnnotationMetadata;Ljava/lang/Class;Lorg/springframework/core/io/ResourceLoader;Lorg/springframework/core/env/Environment;Lorg/springframework/beans/factory/support/BeanDefinitionRegistry;)V
我看到其他一些人在1.5.5和1.5.6上报告了这个问题,但他们没有解决这个问题。
知道为什么会发生这种情况以及需要改变什么?
答案 0 :(得分:0)
在我的情况下,它与 Spring Cloud Brixton.RELEASE 从 spring-cloud-starter-parent 迁移到 spring-cloud-dependencies的事实有关作为maven依赖关系管理的BOM。在我尝试将spring boot从 1.5.4 迁移到 1.5.6 之前,它正在以某种方式工作。在此处查看备注 - https://spring.io/blog/2016/05/11/spring-cloud-brixton-release-is-available
我所需要的就是修复maven依赖管理:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
答案 1 :(得分:0)
在我的项目中发生此错误是因为maven包含错误版本的spring-data-jpa
和spring-data-commons
(可能以某种方式被我们拥有的其他依赖项覆盖)。
我能够通过在dependencyManagement
部分明确定义正确的依赖版本来修复它。
<dependencyManagement>
<dependencies>
<!-- explicitly define correct spring-data-jpa and spring-data-commons versions -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>1.11.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-commons</artifactId>
<version>1.13.6.RELEASE</version>
</dependency>
...
</dependencyManagement>