在春季靴子中从1.5.4移动到1.5.6时找不到类

时间:2017-08-24 00:02:48

标签: spring-boot

我将我的弹簧启动版本从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上报告了这个问题,但他们没有解决这个问题。

知道为什么会发生这种情况以及需要改变什么?

2 个答案:

答案 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-jpaspring-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>