目录

Java GRPC proto 编译

相较于Go,Java 中的使用步骤就繁琐了很多,我也是折腾了很久才搞清楚。、

环境

ubuntu 16.04

IDE:Intellig IDEA

Java 编译:Gradle

proto 编译

使用 Gradle 新建工程,们只用这个工程编译 proto,和工作工程分开操作

build.gradle 配置
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
apply plugin: 'java'
apply plugin: 'com.google.protobuf'
apply plugin: 'idea'
repositories {
    maven { url "https://maven.aliyun.com/repository/central/" }
}
dependencies {
    compile "io.grpc:grpc-netty:1.20.0"
    compile "io.grpc:grpc-protobuf:1.20.0"
    compile "io.grpc:grpc-stub:1.20.0"
}
buildscript {
    repositories {
        maven { url "https://maven.aliyun.com/repository/central/" }
    }
    dependencies {
        classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.8'
    }
}
protobuf {
    protoc {
        artifact = 'com.google.protobuf:protoc:3.7.1'
    }
    plugins {
        grpc {
            artifact = 'io.grpc:protoc-gen-grpc-java:1.20.0'
        }
    }
    generateProtoTasks {
        ofSourceSet('main')*.plugins {
            grpc { }
        }
    }
}

grpc-java 版本信息查看:https://github.com/grpc/grpc-java

protobuf-gradle-plugin 版本信息查看:https://plugins.gradle.org/plugin/com.google.protobuf

protoc 版本信息查看:在命令行输入:protoc –version

将 user.proto 文件复制到 src/main/proto文件夹下,如图所示:

右键 user.proto,选择 Recompile”user.proto”(第一次编译可能是compile)

编译完成后会在 build 目录内生成 grpc和 java 文件夹,将目录内的文件复制到工程内。