gRPC генерирует файлы с ошибками компиляции

gRPC генерирует файлы с ошибками компиляции, а именно:

com.salesforce.reactorgrpc.stub cannot be resolved

Вот целиком сгенерированный файл:

package ru.terentyev.rikmasterstesttask.roastingcoffee;

import static ru.terentyev.rikmasterstesttask.roastingcoffee.RoastingProcessorGrpc.getServiceDescriptor;
import static io.grpc.stub.ServerCalls.asyncUnaryCall;
import static io.grpc.stub.ServerCalls.asyncServerStreamingCall;
import static io.grpc.stub.ServerCalls.asyncClientStreamingCall;
import static io.grpc.stub.ServerCalls.asyncBidiStreamingCall;


@javax.annotation.Generated(
value = "by ReactorGrpc generator",
comments = "Source: coffee.proto")
public final class ReactorRoastingProcessorGrpc {
    private ReactorRoastingProcessorGrpc() {}

    public static ReactorRoastingProcessorStub newReactorStub(io.grpc.Channel channel) {
        return new ReactorRoastingProcessorStub(channel);
    }

    public static final class ReactorRoastingProcessorStub extends io.grpc.stub.AbstractStub<ReactorRoastingProcessorStub> {
        private RoastingProcessorGrpc.RoastingProcessorStub delegateStub;

        private ReactorRoastingProcessorStub(io.grpc.Channel channel) {
            super(channel);
            delegateStub = RoastingProcessorGrpc.newStub(channel);
        }

        private ReactorRoastingProcessorStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
            super(channel, callOptions);
            delegateStub = RoastingProcessorGrpc.newStub(channel).build(channel, callOptions);
        }

        @Override
        protected ReactorRoastingProcessorStub build(io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
            return new ReactorRoastingProcessorStub(channel, callOptions);
        }

        public reactor.core.publisher.Mono<com.google.protobuf.Empty> sendRoasting(reactor.core.publisher.Mono<ru.terentyev.rikmasterstesttask.roastingcoffee.RoastingRequest> reactorRequest) {
            return com.salesforce.reactorgrpc.stub.ClientCalls.oneToOne(reactorRequest, delegateStub::sendRoasting, getCallOptions());
        }

        public reactor.core.publisher.Mono<com.google.protobuf.Empty> sendRoasting(ru.terentyev.rikmasterstesttask.roastingcoffee.RoastingRequest reactorRequest) {
           return com.salesforce.reactorgrpc.stub.ClientCalls.oneToOne(reactor.core.publisher.Mono.just(reactorRequest), delegateStub::sendRoasting, getCallOptions());
        }

    }

    public static abstract class RoastingProcessorImplBase implements io.grpc.BindableService {

        public reactor.core.publisher.Mono<com.google.protobuf.Empty> sendRoasting(ru.terentyev.rikmasterstesttask.roastingcoffee.RoastingRequest request) {
            return sendRoasting(reactor.core.publisher.Mono.just(request));
        }

        public reactor.core.publisher.Mono<com.google.protobuf.Empty> sendRoasting(reactor.core.publisher.Mono<ru.terentyev.rikmasterstesttask.roastingcoffee.RoastingRequest> request) {
            throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED);
        }

        @java.lang.Override public final io.grpc.ServerServiceDefinition bindService() {
            return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor())
                    .addMethod(
                            ru.terentyev.rikmasterstesttask.roastingcoffee.RoastingProcessorGrpc.getSendRoastingMethod(),
                            asyncUnaryCall(
                                    new MethodHandlers<
                                            ru.terentyev.rikmasterstesttask.roastingcoffee.RoastingRequest,
                                            com.google.protobuf.Empty>(
                                            this, METHODID_SEND_ROASTING)))
                    .build();
        }

        protected io.grpc.CallOptions getCallOptions(int methodId) {
            return null;
        }

        protected Throwable onErrorMap(Throwable throwable) {
            return com.salesforce.reactorgrpc.stub.ServerCalls.prepareError(throwable);
        }
    }

    public static final int METHODID_SEND_ROASTING = 0;

    private static final class MethodHandlers<Req, Resp> implements
            io.grpc.stub.ServerCalls.UnaryMethod<Req, Resp>,
            io.grpc.stub.ServerCalls.ServerStreamingMethod<Req, Resp>,
            io.grpc.stub.ServerCalls.ClientStreamingMethod<Req, Resp>,
            io.grpc.stub.ServerCalls.BidiStreamingMethod<Req, Resp> {
        private final RoastingProcessorImplBase serviceImpl;
        private final int methodId;

        MethodHandlers(RoastingProcessorImplBase serviceImpl, int methodId) {
            this.serviceImpl = serviceImpl;
            this.methodId = methodId;
        }

        @java.lang.Override
        @java.lang.SuppressWarnings("unchecked")
        public void invoke(Req request, io.grpc.stub.StreamObserver<Resp> responseObserver) {
            switch (methodId) {
                case METHODID_SEND_ROASTING:
                    com.salesforce.reactorgrpc.stub.ServerCalls.oneToOne((ru.terentyev.rikmasterstesttask.roastingcoffee.RoastingRequest) request,
                            (io.grpc.stub.StreamObserver<com.google.protobuf.Empty>) responseObserver,
                            serviceImpl::sendRoasting, serviceImpl::onErrorMap);
                    break;
                default:
                    throw new java.lang.AssertionError();
            }
        }

        @java.lang.Override
        @java.lang.SuppressWarnings("unchecked")
        public io.grpc.stub.StreamObserver<Req> invoke(io.grpc.stub.StreamObserver<Resp> responseObserver) {
            switch (methodId) {
                default:
                    throw new java.lang.AssertionError();
            }
        }
    }

}

Файл .proto:

syntax = "proto3";

option java_package = "ru.terentyev.rikmasterstesttask.roastingcoffee";
option java_multiple_files = true;

import "google/protobuf/empty.proto";

service RoastingProcessor {
    rpc sendRoasting(RoastingRequest) returns (google.protobuf.Empty) {}
}

message RoastingRequest {
    string sort = 1;
    string country = 2;
    string brigadeNumber = 3;
}

И 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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.3.4</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>ru.terentyev</groupId>
    <artifactId>rikmasterstesttask</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>rikmasterstesttask</name>
    <description>Test task for Rik Masters</description>
    <url/>
    <licenses>
        <license/>
    </licenses>
    <developers>
        <developer/>
    </developers>
    <scm>
        <connection/>
        <developerConnection/>
        <tag/>
        <url/>
    </scm>
    <properties>
        <grpc.version>1.68.0</grpc.version>
        <java.version>22</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.kafka</groupId>
            <artifactId>spring-kafka</artifactId>
        </dependency>
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.kafka</groupId>
            <artifactId>spring-kafka-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.google.protobuf</groupId>
            <artifactId>protobuf-java</artifactId>
            <version>4.28.2</version>
        </dependency>
        <dependency>
            <groupId>io.grpc</groupId>
            <artifactId>grpc-netty</artifactId>
            <version>${grpc.version}</version>
        </dependency>
        <dependency>
            <groupId>io.grpc</groupId>
            <artifactId>grpc-protobuf</artifactId>
            <version>${grpc.version}</version>
        </dependency>
        <dependency>
            <groupId>io.grpc</groupId>
            <artifactId>grpc-stub</artifactId>
            <version>${grpc.version}</version>
        </dependency>
        <dependency> <!-- necessary for Java 9+ -->
            <groupId>org.apache.tomcat</groupId>
            <artifactId>annotations-api</artifactId>
            <version>6.0.53</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>io.projectreactor</groupId>
            <artifactId>reactor-core</artifactId>
            <version>3.6.10</version>
        </dependency>
        <dependency>
            <groupId>com.salesforce.servicelibs</groupId>
            <artifactId>reactive-grpc</artifactId>
            <version>1.2.4</version>
            <type>pom</type>
        </dependency>
        <dependency>
            <groupId>com.salesforce.servicelibs</groupId>
            <artifactId>reactor-grpc-stub</artifactId>
            <version>1.2.4</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.salesforce.servicelibs</groupId>
            <artifactId>reactor-grpc</artifactId>
            <version>1.2.4</version>
        </dependency>
    </dependencies>

    <build> 
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>io.github.ascopes</groupId>
                    <artifactId>protobuf-maven-plugin</artifactId>
                    <version>2.6.1</version>
                    <configuration>
                        <sourceDirectories>
                            <sourceDirectory>proto</sourceDirectory>
                        </sourceDirectories>
                        <protocVersion>4.28.2</protocVersion>
                        <binaryMavenPlugins>
                            <binaryMavenPlugin>
                                <groupId>io.grpc</groupId>
                                <artifactId>protoc-gen-grpc-java</artifactId>
                                <version>${grpc.version}</version>
                            </binaryMavenPlugin>
                        </binaryMavenPlugins>
                        <jvmMavenPlugins>
                            <jvmMavenPlugin>
                                <groupId>com.salesforce.servicelibs</groupId>
                                <artifactId>reactor-grpc</artifactId>
                                <version>1.2.4</version>
                            </jvmMavenPlugin>
                        </jvmMavenPlugins>
                    </configuration>
                    <executions>
                        <execution>
                            <goals>
                                <goal>generate</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
</project>

В интернете нашел только информацию о том, что такое уже было в прошлых версиях и было исправлено в версии 1.1.0. Попробовал сменить версию на 1.1.0 - бесполезно.


Ответы (0 шт):