相较于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 文件夹,将目录内的文件复制到工程内。