最近开始接触ProtoBuf用来开发项目,浏览了众多帖子(此帖也是参考这些作者完成的,在此表示感谢),几番操作,终于完成了,所以发一个帖子记录一下,有不合理的地方,还望指正。
1、先是进入设置(CTRL+ALT+S)-> 选择Plugins -> 输入Protobuf -> install;
2、创建proto目录,编写相应的.proto文件(注意:将proto目录设成Resources Root(proto目录右击,Mark Directory As,选择Resources Root));
3、User.proto文件内容;
syntax = "proto3"; package tutorial; option java_package = "com.*****.pojo";//指定java代码的包路径 option java_outer_classname = "userProto";//自定义生成java文件的名称 message UserProto{ int32 id = 1; string name = 2; string email = 3; } |
4、pom.xml添加依赖和组件;
<properties><!--设置版本--> <grpc.version>1.6.1</grpc.version> <protobuf.version>3.3.0</protobuf.version> </properties> <dependencies><!--几个依赖--> <dependency> <groupId>io.grpc</groupId> <artifactId>grpc-netty</artifactId> <version>${grpc.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>io.grpc</groupId> <artifactId>grpc-protobuf</artifactId> <version>${grpc.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>io.grpc</groupId> <artifactId>grpc-stub</artifactId> <version>${grpc.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.google.protobuf</groupId> <artifactId>protobuf-java</artifactId> <version>${protobuf.version}</version> </dependency> </dependencies> |
<build> <plugins> <plugin><!-- 组件 --> <groupId>org.xolstice.maven.plugins</groupId> <artifactId>protobuf-maven-plugin</artifactId> <version>0.5.0</version> <configuration> <protocArtifact>com.google.protobuf:protoc:${protobuf.version}: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> |
5、运行组件;
6、在target中找到生成的java类拷入到需要的位置上;
7.操作;
//代码 userProto.UserProto.Builder builder = userProto.UserProto.newBuilder(); builder.setId(1); builder.setName("Jack"); final userProto.UserProto build = builder.build(); System.out.print(build); |
8、结果。
扫描二维码关注公众号,回复:
2314633 查看本文章