从proto-buff一元API实现服务器时无法解析符号类



Gradle项目

使用java-gradle项目实现grpc-一元API

构建渐变

group="com.kaushik.grpc"version="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 {}
}
}
}

问候.原型

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的类。

GreetServiceImplBase是基于gradle文件中的配置(depedements,生成的源目录(生成的。渐变文件中的示例条目:

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"
}

现在执行渐变任务"generateProto">

最新更新