Ошибки, вызванные отсутствием объявления зависимости

Кто-нибудь успешно использовал Spring Boot, Spring Data Elasticsearch и Elasticsearch 5.x для работы?

Я обновил свой pom для использования spring-data -asticsearch 3.0.0.RELEASE (только что выпущен), в котором есть примечания по коммитам в Github, в которых говорится, что он поддерживает ES 5.

Я получал некоторые ошибки, которые были вызваны тем, что не объявили зависимость от spring-data-common, После добавления без версии я заметил, что она, по-видимому, управляется Spring Boot и загружает в 1.13.7.RELEASE

Это вызывает: java.lang.NoClassDefFoundError: org/springframework/data/mapping/model/Property

Я тогда натолкнулся spring-data-common до 2.0.0. ПОЖАЛУЙСТА, думая, что новейшие выпуски всего должны быть совместимы. Это вызывает исключение AbstractMethodError, когда хранилище подключено.

Кто-нибудь может дать какие-нибудь советы? Вот зависимости от моего 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 ответа

Решение

Кто бы ни редактировал название, он сделал неточное описание. Как первоначально говорилось, проблема заключается в "адской зависимости". Не было пропущенных зависимостей, а, скорее, тонны транзитивных зависимостей, которые должны были координироваться всеми версиями магическим неочевидным / недокументированным способом. - JvmSd121

Однажды я перенес проект spring-data-asticsearch (с ES 2.x) на ES 5.x.

Я потерял источник, но у меня все еще есть банка

Вы, ребята, поставили меня на правильный путь. Я обновил следующим образом:

Spring Core (и связанный с ним): 5.0.0.RELEASE Spring Boot: 2.0.0.M4 Spring Cloud: Finchley.M2

После установки управляемые версии обновляются следующим образом:

spring-data-commons: 2.0.0.RC3 (из релиз-поезда KAY-RC3) spring-data-asticsearch: 3.0.0.RC3 (из релиз-поезда KAY-RC3) эластичный поиск и транспорт: 5.5.2 (соответствует моему Требование 5.x)

Мы управляли версиями Jackson в нашем родительском pom для других дочерних модулей, что приводило к извлечению несовместимых версий. Я переопределил те в наших проектах Spring Boot до версии ${jackson.version}, определенной в Spring, следующим образом:

    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>

Я получаю еще одну ошибку из своего репо, которая, как мне кажется, вызвана самооценкой из-за моей модели данных. Кажется, все ошибки пути к классам исчезли. Я дам другое обновление, если я найду что-нибудь еще. Что за ср!

Спасибо за советы.

Другие вопросы по тегам