配置protobuf格式的数据传输

本文介绍了如何在Gradle项目中配置protobuf-gradle-plugin插件,以支持protobuf格式的数据传输。详细步骤包括添加gradle依赖,指定proto源文件目录,创建编译任务,并演示了proto3语法中的enum和message定义。编译完成后,可以在指定目录下找到生成的Java文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

根gradle依赖
    classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.0'

gradle中

// 指定proto存放的目录,与src目录同级

sourceSets {
        main {
            proto.srcDirs = [
                    'protos'
            ]
        }
    }

 //编写编译任务,调用plugin编译生成java文件 与sourceSets同目录

  protobuf {
    protoc {
        artifact = 'com.google.protobuf:protoc:3.5.1'
    }

    generateProtoTasks {
        all().each { task ->
            task.builtins {
                remove java
            }
            task.builtins {
                java {}
            }
        }
    }
}

dependencies {
    implementation 'com.google.protobuf:protobuf-java:3.5.1'
    implementation 'com.google.protobuf:protoc:3.5.1'
}

proto3 规则中不能使用required和optional限制性的关键字  enumn中的字段的值必须从0开始

syntax = "proto3";

package baidu.demo;

enum Status {
    NO_HAVE_NAVI = 0; 
    ROUTE_PLANNING = 1;
    ROUTE_GUIDE = 2; 
    CRUISE = 3; 
    YAWING = 4; 
    RE_PLANNING = 5; 
}
message NaviStatus {
    Status navi_status = 1;
    uint32 remain_dis = 2; 
}

编译成功后在build-generated-source-proto中找到生成的java文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值