Не удается разрешить класс символов при реализации сервера из протоффа - унарный API - PullRequest
0 голосов
/ 11 декабря 2018

Проект Gradle

Пытаясь реализовать grpc - унарный API с использованием проекта java-gradle

Build.gradle

group = "com.kaushik.grpc" версия = "1.0-SNAPSHOT"

apply plugin: 'java'
apply plugin: 'com.google.protobuf'
apply plugin: 'idea'

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.5'
    }
}

repositories {
    mavenCentral()
}

description = "gRPC Java Examples"

dependencies {
    compile 'io.grpc:grpc-all:0.13.1'
}


protobuf {
    protoc {
        // The version of protoc must match protobuf-java. If you don't depend on
        // protobuf-java directly, you will be transitively depending on the
        // protobuf-java version that grpc depends on.
        artifact = "com.google.protobuf:protoc:3.0.0-beta-2"
    }
    plugins {
        grpc {
            artifact = 'io.grpc:protoc-gen-grpc-java:0.13.1'
        }
    }
    generateProtoTasks {
        all()*.plugins {
            grpc {}
        }
    }
}

greet.proto

syntax = "proto3";

package greet;

option java_package = "com.proto.greet";
option java_multiple_files = true;

message Greeting {
    string first_name = 1;
    string last_name = 2;
}

message GreetRequest {
    Greeting greeting = 1;
}

message GreetResponse {
    string result = 1;
}

service GreetService {
    //unary
    rpc Greet(GreetRequest) returns (GreetResponse) {};
}

при попытке расширить GreetServiceGrpc

import com.proto.greet.GreetServiceGrpc;
public class GreetServiceImpl extends GreetServiceGrpc.GreetServiceImplBase{

}

Не удается разрешить символ GreetServiceImplBase.Нет класса с GreetServiceImplBase даже в пути сборки.

1 Ответ

0 голосов
/ 01 января 2019

GreetServiceImplBase генерируется на основе конфигурации (зависимости, сгенерированные исходные каталоги) в файле Gradle.Пример записи в файле Gradle:

dependencies {
compile group: 'com.google.protobuf', name: 'protobuf-java', version: '3.6.1'

testCompile group: 'junit', name: 'junit', version: '4.12'

compile group: 'io.grpc', name: 'grpc-stub', version: '1.16.1'

compile group: 'io.grpc', name: 'grpc-protobuf', version: '1.16.1'

compile group: 'io.grpc', name: 'grpc-netty', version: '1.16.1'

compile "io.grpc:grpc-all:1.16.1"
compile group: 'com.github.os72', name: 'protoc-jar', version: '3.6.0'
compile group: 'org.projectlombok', name:'lombok', version: '1.18.4'
compile 'com.google.protobuf:protobuf-java-util:3.6.1'
}
sourceSets {
    main {
        java {
            srcDirs = ["src/main/java/", "src/generated/main/grpc/", "src/generated/main/java/"]
        }
    }
    test {
        java {
            srcDirs = ["src/test/"]
        }
    }
}
idea {
    module {
        sourceDirs += file("${projectDir}/src/generated/main/java");
        sourceDirs += file("${projectDir}/src/generated/main/grpc");
    }
}
clean {
    delete "$projectDir/src/generated"
}

Теперь выполните задачу Gradle "generateProto"

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