maven集成protobuf插件及使用

maven集成protobuf插件及使用,第1张

maven集成protobuf插件及使用 1. maven集成 protobuf相关依赖

引入protobuf-java依赖


   com.google.protobuf
   protobuf-java
   ${protobuf-java.version}
引入protobuf maven插件(protobuf-maven-plugin)

        详细使用说明见网址Maven Protocol Buffers Plugin – Introductionhttps://www.xolstice.org/protobuf-maven-plugin/usage.html

      os-maven-plugin具体使用说明参见github(https://github.com/trustin/os-maven-plugin)

  Enabling os-maven-plugin on your Maven project 


  
    
      
        kr.motd.maven
        os-maven-plugin
        1.7.0
      
    
  

以下是一个完整的maven pom.xml示例 



    4.0.0
    protobuf-demo
    com.github.icefoxs
    0.0.1-SNAPSHOT
    
        3.19.2
        1.24.0
        1.43.2
        1.17.0
        4.12
    
    
        
            junit
            junit
            ${junit.version}
        
        
        
            io.grpc
            grpc-netty-shaded
            ${grpc-java.version}
        
        
            io.grpc
            grpc-protobuf
            ${grpc-java.version}
        
        
            io.grpc
            grpc-stub
            ${grpc-java.version}
        
        
            io.grpc
            grpc-testing
            ${grpc-java.version}
            test
        
        
            com.google.api.grpc
            proto-google-common-protos
            ${proto-google-common-protos.version}
        
        
        
            com.google.protobuf
            protobuf-java
            ${protobuf-java.version}
        
    
    
        
            
                kr.motd.maven
                os-maven-plugin
                1.7.0
            
        
        
            
            
                org.xolstice.maven.plugins
                protobuf-maven-plugin
                0.5.0
                
                    com.google.protobuf:protoc:${protobuf-java.version}:exe:${os.detected.classifier}
                    
                    grpc-java
                    io.grpc:protoc-gen-grpc-java:${grpc-java.version}:exe:${os.detected.classifier}
                    
                
                
                    
                        
                            compile
                            compile-custom
                        
                    
                
            
            
                org.apache.maven.plugins
                maven-compiler-plugin
                
                    11
                    11
                
            
        
    

2.编写proto文件以及测试单元文件
syntax = "proto3";

option java_multiple_files = true;
option java_package = "com.github.icefoxs.protobuf.entitiy";

message User  {
  string name = 1;
  int32 age = 2;
}

 

 

import com.google.protobuf.InvalidProtocolBufferException;
import com.github.icefoxs.protobuf.entitiy.User;
import org.junit.Test;

public class UserProtoTest {

    @Test
    public void test() throws InvalidProtocolBufferException {
        User.Builder builder = User.newBuilder();
        builder.setAge(25);
        builder.setName("icefoxs");
        User user = builder.build();
        System.out.println("before :" + user.toString());
        System.out.println("===========Person Byte==========");
        for (byte b : user.toByteArray()) {
            System.out.print(b);
        }
        System.out.println("==========byteLength" + user.toByteArray().length);
        System.out.println();
        System.out.println(user.toByteString().toString());
        System.out.println("================================");
        byte[] byteArray = user.toByteArray();
        System.out.println(byteArray.length);
        User p2 = User.parseFrom(byteArray);
        System.out.println("after :" + p2.toString());
      
    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5706094.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存