Весна - избегайте смешивания версий - PullRequest
0 голосов
/ 14 октября 2018

Во время запуска моего загрузочного приложения Spring я получаю следующую ошибку:

Была сделана попытка вызвать метод org.springframework.web.reactive.function.client.WebClient.builder()Lorg/springframework/web/reactive/function/client/WebClient$Builder; but it does not exist. Its class, org.springframework.web.reactive.function.client.WebClient, is available from the following locations:

jar:file:/C:/Users/Wicia/.m2/repository/org/springframework/spring-web-reactive/5.0.0.M4/spring-web-reactive-5.0.0.M4.jar!/org/springframework/web/reactive/function/client/WebClient.class

Он был загружен из следующего местоположения:

file:/C:/Users/Wicia/.m2/repository/org/springframework/spring-web-reactive/5.0.0.M4/spring-web-reactive-5.0.0.M4.jar

Действие:

Correct the classpath of your application so that it contains a single, compatible version of org.springframework.web.reactive.function.client.WebClient

Я обнаружил подсказку, что я должен указать общие версии пружин (не смешивая их) для всех артефактов, но как это сделать?

Это мой pom.xml:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>5.0.0.M4</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>5.0.1.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web-reactive</artifactId>
    <version>5.0.0.M4</version>
</dependency>
<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-cassandra</artifactId>
    <version>2.1.0.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>2.0.5.RELEASE</version>
</dependency>

1 Ответ

0 голосов
/ 14 октября 2018

НЕ определяйте версии зависимостей в вашем pom.xml, если Spring управляет этой зависимостью.Вместо этого используйте spring-boot-starter-parent в качестве родителя.

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.5.RELEASE</version>
</parent>

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web-reactive</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-cassandra</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
<dependencies>

Spring-boot-parent имеет версии, определенные почти для всех популярных зависимостей, поэтому по умолчанию вы можете пропустить определение версий.Определите его, только если вы получаете ошибку POM (это означает, что вы добавили уникальную зависимость, которая не управляется Spring Boot)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...