Не могу унаследовать класс сервиса от ServiceGrpc
Помогите, пытаюсь разобраться в gRPC. До этого его не трогал никогда, как и gradle. Я создал модель
import java.util.UUID;
import jakarta.persistence.*;
import lombok.Data;
import lombok.RequiredArgsConstructor;
@Entity
@Data
@RequiredArgsConstructor
@Table(name = "books")
public class Book {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private UUID id;
private String title;
private String author;
private String isbn;
private Integer quantity;
}
Далее создал файл bookstore.proto
syntax = "proto3";
package com.example.bookstore;
option java_package = "com.example.bookstore.proto";
option java_outer_classname = "BookstoreProto";
message Book {
string id = 1;
string title = 2;
string author = 3;
string isbn = 4;
int32 quantity = 5;
}
message GetBookRequest {
string id = 1;
}
message DeleteBookRequest {
string id = 1;
}
service BookstoreService {
rpc AddBook(Book) returns (Book);
rpc GetBook(GetBookRequest) returns (Book);
rpc UpdateBook(Book) returns (Book);
rpc DeleteBook(DeleteBookRequest) returns (Book);
}
И командой ./gradlew generateProto
сгенерировал два класса build/generated/source/proto/main/grpc/com/example/bookstore/BookstoreServiceGrpc.java
и
build/generated/source/proto/main/java/com/example/bookstore/Bookstore.java
А теперь когда я пытаюсь создать свой BookstoreServiceImpl и унаследовать его от BookstoreServiceGrpc.BookstoreServiceImplBase
Компилятор просто отказывается его находить и просто подсвечивает красным.
Импорт com.example.bookstore.proto.BookstoreServiceGrpc
тоже не видит и на уровне .proto. тоже отмечает красным.
На всякий случай вот мой gradle файл
plugins {
id 'java'
id 'org.springframework.boot' version '3.2.4'
id 'io.spring.dependency-management' version '1.1.4'
id 'com.google.protobuf' version '0.8.16'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
java {
sourceCompatibility = '17'
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'com.consol.citrus:citrus-bom:3.4.0'
implementation 'org.mapstruct:mapstruct:1.5.5.Final'
annotationProcessor ("org.mapstruct:mapstruct-processor:1.5.5.Final")
compileOnly 'org.projectlombok:lombok:0.11.0'
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'org.postgresql:postgresql'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.boot:spring-boot-testcontainers'
testImplementation 'org.testcontainers:junit-jupiter'
testImplementation 'org.testcontainers:postgresql'
implementation 'io.grpc:grpc-netty:1.42.1'
implementation 'io.grpc:grpc-protobuf:1.42.1'
implementation 'io.grpc:grpc-stub:1.42.1'
implementation 'com.google.protobuf:protobuf-java:3.18.1'
}
tasks.named('test') {
useJUnitPlatform()
}
protobuf {
protoc {
artifact = 'com.google.protobuf:protoc:3.18.1'
}
plugins {
grpc {
artifact = 'io.grpc:protoc-gen-grpc-java:1.42.1'
}
}
generateProtoTasks {
all()*.plugins {
grpc {}
}
}
}