代码之家  ›  专栏  ›  技术社区  ›  JvmSd121

未声明依赖项导致的错误

  •  1
  • JvmSd121  · 技术社区  · 7 年前

    有人成功获得Spring Boot、Spring Data Elasticsearch和Elasticsearch 5吗。x去上班?

    我遇到了一些错误,这些错误是由于没有声明依赖于 spring-data-common . 在没有版本的情况下添加之后,我注意到它显然是由Spring Boot管理的,并引入了1.13.7。释放

    java.lang.NoClassDefFoundError: org/springframework/data/mapping/model/Property

    然后我跳了起来 弹簧数据公用

    有人能给点提示吗?以下是我的POM中的依赖项

    Managed versions from Parent POM:
        <spring-boot.version>1.5.7.RELEASE</spring-boot.version>
        <spring-cloud.version>Dalston.RELEASE</spring-cloud.version>
    
    From POM from the child module where things don't work
    
    <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-config</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.data</groupId>
                <artifactId>spring-data-commons</artifactId>
    <!--            <version>2.0.0.RELEASE</version> -->
            </dependency>
    
            <dependency>
                <groupId>org.springframework.data</groupId>
                <artifactId>spring-data-elasticsearch</artifactId>
                <version>3.0.0.RELEASE</version>
            </dependency>
    
            <dependency>
                <groupId>org.elasticsearch</groupId>
                <artifactId>elasticsearch</artifactId>
                <version>5.5.0</version>
            </dependency>
    
            <dependency>
                    <groupId>org.elasticsearch.client</groupId>
                    <artifactId>transport</artifactId>
                 <version>5.5.0</version>
            </dependency>
    
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
            </dependency>
    
            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
            </dependency>
    
        </dependencies>
    
    3 回复  |  直到 7 年前
        1
  •  1
  •   JvmSd121    7 年前

    编辑标题的人的描述不准确。正如最初所说,这个问题是一个“依赖地狱”。没有遗漏依赖项,而是大量的可传递依赖项,所有这些依赖项都需要以神奇的、不明显的/未记录的方式协调版本。JVMD121

        2
  •  0
  •   Michael    7 年前

    我把消息来源弄丢了,但瓶子还在 here

        3
  •  0
  •   JvmSd121    7 年前

    你们把我带上了正确的轨道。我升级如下:

    弹簧芯(及相关):5.0.0。释放 春天的云:芬奇利。平方米

    spring数据共享:2.0.0。RC3(来自释放序列KAY-RC3) elasticsearch和transport:5.5.2(满足我的5.x要求)

    我们在父pom中为其他子模块管理了Jackson的版本,这导致了不兼容的版本被引入。我将Spring引导项目中的版本改写为Spring中定义的版本${jackson.version},如下所示:

        spring-jackson-version=2.9.1
    
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>${spring-jackson.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>${spring-jackson.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>${spring-jackson.version}</version>
        </dependency>
    

    我从回购中得到了另一个错误,我认为这是由于我的数据模型造成的。所有的类路径错误似乎都消失了。如果我发现任何进一步的情况,我会再更新一次。多棒的cf!