proto文件生成java类

作者: 朽木亦自雕 | 来源:发表于2018-10-15 13:57 被阅读326次

    写在前面:如果不还不知道grpc是什么,请先转至 http://doc.oschina.net/grpc 中阅读,本文是作者基于上面文章所做的一些探索学习,还请各位多多指正,欢迎留言区

    gradle搭建生成包项目

    如果还不知道gradle是什么,可以去 https://www.yiibai.com/gradle 前往学习,也可以使用maven构建,本文不做研究

    1:本地新建目录 grpc-lib,在grpc-lib中新建一个文件 build.gradle

    apply plugin: 'java'
    apply plugin: 'com.google.protobuf'
    apply plugin: 'idea'
    
    repositories {
        maven { url "https://maven.aliyun.com/repository/central/" }
    }
    
    dependencies {
        compile "io.grpc:grpc-netty:1.10.0"
        compile "io.grpc:grpc-protobuf:1.10.0"
        compile "io.grpc:grpc-stub:1.10.0"
    }
    protobuf {
        protoc {
            artifact = 'com.google.protobuf:protoc:3.0.0'
        }
        plugins {
            grpc {
                artifact = 'io.grpc:protoc-gen-grpc-java:1.0.0-pre2'
            }
        }
        generateProtoTasks {
            ofSourceSet('main')*.plugins {
                grpc { }
            }
        }
    }
    
    buildscript {
        repositories {
            maven { url "https://maven.aliyun.com/repository/central/" }
        }
        dependencies {
            classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.4'
        }
    }
    

    2:构建文件夹 grpc-lib/src/main/proto 并在proto文件夹中新建hello.proto文件

    syntax = "proto3";
    
    option java_multiple_files = true;
    
    option java_package = "com.viewhigh.grpc.lib.hello";
    
    option java_outer_classname = "HelloProto";
    
    service HelloService {
        rpc SayHello (HelloRequest) returns (HelloResponse) {}
    }
    
    message HelloRequest {
        string name = 1;
    }
    
    message HelloResponse {
        string code = 1;
        string message = 2;
    }
    
    
    

    3:核对完成以上两步以后的项目目录:


    目录结构

    4:进行编译

    $ gradle cpmpileJava
    

    很多同学此处可能无法进行,那么您肯定没有仔细看gradle教程
    运行完成结果

    最终结果

    5:至此我们完成了基于gradle,构建了java项目,并且完成proto文件和java文件的转换,这些文件就可以拿来做grpc框架的构建了,下一篇中,我将会基于springboot + gradle + grpc进行探索,链接后续补上

    相关文章

      网友评论

        本文标题:proto文件生成java类

        本文链接:https://www.haomeiwen.com/subject/iqywaftx.html