grpc-java在Windows平台上的部署和开发
【前言】 操作系统 :Windows 10 IDE :IntelliJ>1、新建空的Maven工程(输入名称一路next即可 )
点击finish后会为工程下载一些必要的插件,过程可能有点慢,取决于你的网速,
如果不想后面折腾,请耐心等他下载完成。
所需插件下载完成后注意看右下角提示,pop.xml是当前工程的maven配置文件,
用于从远程maven仓库添加你需要的依赖。当pop.xml配置文件发生改变时,会有
此提示。建议选择import changes,选择enable auto-import的话会在你修改此
配置文件时自动添加依赖,个人觉得没有必要。
2、准备好相应的插件和构建工具
因为grpc-java使用protocol buffer作为数据交换格式,所以要为IntelliJ>
Protobuf Support插件,用于IDE支持:注意这里别选错Google Protocol Buffers
support插件了,这个插件虽然下载量很高,但还不支持proto3
3、添加jrpc和protocal buffer的相关maven依赖
修改pop.xml文件,引入jrpc,目前1.0.1是最新版:
<properties> <grpc.version>1.0.1</grpc.version><!-- CURRENT_GRPC_VERSION -->
</properties>
<dependencies>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-netty</artifactId>
<version>${grpc.version}</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-protobuf</artifactId>
<version>${grpc.version}</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-stub</artifactId>
<version>${grpc.version}</version>
</dependency>
</dependencies>
修改pop.xml文件,引入构建工具:
<build> <extensions>
<extension>
<groupId>kr.motd.maven</groupId>
<artifactId>os-maven-plugin</artifactId>
<version>1.4.1.Final</version>
</extension>
</extensions>
<plugins>
<plugin>
<groupId>org.xolstice.maven.plugins</groupId>
<artifactId>protobuf-maven-plugin</artifactId>
<version>0.5.0</version>
<configuration>
<protocArtifact>
com.google.protobuf:protoc:3.1.0:exe:${os.detected.classifier}
</protocArtifact>
<pluginId>grpc-java</pluginId>
<pluginArtifact>
io.grpc:protoc-gen-grpc-java:${grpc.version}:exe:${os.detected.classifier}
</pluginArtifact>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>compile-custom</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
注意:protoc的版本必须匹配protobuf-java。 由于上面protobuf-java的版本是
依赖grpc的,所以这里直接使用jrpc的版本号就可以了。
修改完pop.xml文件后,点击右下角的import changes,开始从maven远程下载
依赖的库。这个过程同样有些长,取决于网络。如果不想后面折腾,请耐心等候
下载完成。
一直到这里其实都是为jrpc开发做准备的配置工作。
4、编写*.proto文件:
新建一个proto目录,然后创建helloworld.proto文件
syntax = "proto3";
option java_multiple_files = true;
option java_package = "io.grpc.examples.helloworld";
option java_outer_classname = "HelloWorldProto";
option objc_class_prefix = "HLW";
package helloworld;
service Greeter {
rpc SayHello (HelloRequest) returns (HelloReply) {}
}
message HelloRequest {
string name = 1;
}
message HelloReply {
string message = 1;
}
5、编译proto文件
右键工程——>Maven——>Generate source and Update folders
编译生成的代码在target目录下,因为maven将开发环境和源代码进行隔离,这种
默认的良好习惯会保证代码不混乱:
6、编写Server和Client:
5、Run Hello World!
启动Server:
客户端请求:
注: 如果在运行或编译过程中出现任何java版本的问题请检查
1:Project Structure里确认两个地方:Project sdk以及project language level
2:Project Structure->Modules里Sources里的Language level
3:Setting->java Compiler->Project/module target bytecode Version
这三个地方需要一致
页:
[1]