ProtoBuf配合IDEA的使用

最近开始接触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 查看本文章

猜你喜欢

转载自blog.csdn.net/qq_38616430/article/details/81159071
今日推荐