Не удалось разрешить зависимости для Spring-Web-реагирующих - PullRequest
0 голосов
/ 04 июля 2018

Я использую реактивный подход для асинхронной обработки потока в моем приложении SpringBoot.

У меня есть эти 6 импортов для SpringFramework

import org.springframework.web.reactive.function.server.RouterFunction;
import org.springframework.web.reactive.function.server.RouterFunctions;
import org.springframework.web.reactive.function.server.ServerResponse;
import static org.springframework.web.reactive.function.server.RequestPredicates.*;
import static org.springframework.web.reactive.function.BodyInserters.fromObject;
import org.springframework.web.reactive.function.server.ServerRequest;
import org.springframework.web.reactive.function.server.ServerResponse;

Я использую эту зависимость в моем pom.xml. Но, похоже, в последний раз они использовались в 2016 году, согласно Maven central.

<!-- https://mvnrepository.com/artifact/org.springframework/spring-web-reactive -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web-reactive</artifactId>
<version>5.0.0.M2</version>
</dependency>

Это моя ошибка при сборке Maven

[ERROR] Failed to execute goal on project SpringReactive: Could not resolve dependencies for project com.ayman:SpringReactive:jar:0.0.1-SNAPSHOT: Failed to collect dependencies at org.springframework:spring-web-reactive:jar:5.0.0.M4: Failed to read artifact descriptor for org.springframework:spring-web-reactive:jar:5.0.0.M4: Could not transfer artifact org.springframework:spring-web-reactive:pom:5.0.0.M4 from/to public (https://globalrepositorymy-company'srepository.int/artifactory/public): connect timed out -> [Help 1]

Это потому, что я использую устаревшие пакеты или это потому, что я испортил пакеты? Или это потому, что эти зависимости не доступны в репозитории моей компании?

Остальная часть моего pom.xml файла: -

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.ayman</groupId>
    <artifactId>SpringReactive</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>SpringReactive</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.3.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!-- Reactor-Core -->
        <dependency>
            <groupId>io.projectreactor</groupId>
            <artifactId>reactor-core</artifactId>
            <version>3.1.8.RELEASE</version>
        </dependency>

        <!-- Spring-data-commons -->
        <dependency>
                <groupId>org.springframework.data</groupId>
                <artifactId>spring-data-commons</artifactId>
                <version>2.0.8.RELEASE</version>
        </dependency>

       <!-- https://mvnrepository.com/artifact/org.springframework/spring-web-reactive -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web-reactive</artifactId>
            <version>5.0.0.M4</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-mongodb -->
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-mongodb</artifactId>
            <version>2.0.8.RELEASE</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>

1 Ответ

0 голосов
/ 04 июля 2018

spring-web-reactive - это прежнее имя модуля, которое было изменено во время этапов Spring Framework 5.0. Как видно из ссылки, которую вы упоминаете, эти артефакты никогда не были доступны в Maven Central, а только в хранилище артефактов Spring.

Если вы посмотрите на справочную документацию Spring Boot , вы увидите, что spring-boot-starter-webflux - это зависимость, которую нужно добавить в ваше приложение, чтобы выбрать spring-webflux, то есть имя модуля для реактивная веб-поддержка в Spring Framework.

Обратите внимание, что, поскольку у вас уже есть spring-boot-starter-web в вашем приложении, ваше приложение останется приложением Spring MVC, если вы добавите стартер webflux, как указано в справочной документации . В этом нет ничего плохого, поскольку Spring MVC в некоторых случаях поддерживает реактивные типы в сигнатурах контроллера. Все сводится к тому, чего вы здесь добиваетесь.

...