美文网首页 从0到1_后端开发
window下配置protobuf在IDEA上开发java项目

window下配置protobuf在IDEA上开发java项目

作者: ef43ffb32440 | 来源:发表于2017-12-05 17:47 被阅读194次

    开发服务端项目,我用的是win10系统,Intellij IDEA编译器。最近项目用到protobuf,所以首先必须搭建protobuf的开发环境。

    安装Protobuf编译器

    Releases·google/protobuf下载protoc-version-your_platform.zip文件,我选择的是3.5.0版本的:protoc-3.5.0-win32.zip。下载后解压到相应目录,将bin目录(注意:全英文目录)添加到系统变量path中:

    image.png image.png

    Protobuf编译器就此安装成功了:

    image.png
    现在就可以在window的命令行中执行protoc命令根据.proto文件自动生成对应的java类文件。

    IDEA集成开发protobuf

    1. 添加maven依赖

    由于前面安装的protobuf compiler采用的是3.5.0版本,所以项目的依赖protobuf-java(Protocol Buffers[Core])最好也采用一致的版本:

    <dependency>
        <groupId>com.google.protobuf</groupId>
        <artifactId>protobuf-java</artifactId>
        <version>3.5.0</version>
    </dependency>
    
    2. 编写.proto文件

    例子,写一个login.proto文件:

    option java_package = "protobuf.generate.cli2srv.login";
    option java_outer_classname = "Auth";
    
    message CRegister {
        required string userid = 1;
        required string passwd  = 2;
    }
    
    message CLogin {
        required string userid = 1;            // 用户账户id
        required string passwd = 2;             // 用户密码
        optional string platform = 3;          // 客户端平台:android,ios,web
        optional string app_version = 4;       // APP版本号
    }
    
    /*
    code:
    200 -- ok
    404 -- error
    300 -- dumplicated registery
    */
    message SResponse {
        required int32 code = 1;            //返回码
        required string desc = 2;           //描述
    }
    

    其中,
    option java_package = "protobuf.generate.cli2srv.login";指定生成java类文件所在的包名。
    option java_outer_classname = "Auth";指定生成的java类的类名。

    具体的.proto文件语法会另开文章研究学习。

    3. 编写脚本一次性批量将.proto文件生成java类

    我的.proto文件统一放在resources目录下,在resources根目录下编写一个proto.bat的脚本文件:

    image.png
    set OUT=../java   # 输出生成的java文件根目录
    set def_cli_java=(login chat)   # 包含‘login’、‘chat’元素的数组变量
    set def_internal_java=(internal) # 包含‘internal’元素的数组变量
    
    # 将cli_def目录下的login.proto和chat.proto文件生成java类
    for %%A in %def_cli_java% do (   
        echo generate cli protocol java code: %%A.proto
        protoc --java_out=%OUT% ./cli_def/%%A.proto
    )
    
    # 将internal_def目录下的internal.proto文件生成java类
    for %%A in %def_internal_java% do (
        echo generate internal java code: %%A.proto
        protoc --java_out=%OUT% ./internal_def/%%A.proto
    )
    
    pause
    

    右键proto.bat文件,点击"Run cmd script"(注意:不是"Run 'proto'"):

    image.png

    执行成功,生成java类:


    image.png

    Chat.javaAuth.javaInternal.java即我们项目中使用的protobuf类了。

    4. IDEA安装Protobuf Support插件

    Protobuf Support插件的主要作用是对.proto文件进行语法检查和高亮显示。
    在IDEA的settigns->plugins中搜索protobuf并安装插件:

    image.png

    这样,.proto文件的内容就可以高亮显示了:

    image.png

    并且文件名前面会显示google的文件图标。

    添加新建.proto文件的模板

    new新建.proto文件时,发现是没有对应的.proto文件类型的:

    image.png

    我们可以创建新建文件模板,如下图,右键->New->Edit File Templates:

    image.png

    点击+(Create Template (Insert)):

    image.png

    命名为google protobuf,extension文件后缀为proto,并保存:

    image.png

    再次右键->New时,发现多了一个google protobuf文件类型,点击即可快速创建proto文件了:

    image.png

    至此,在window下安装和配置Intellij IDEA的protobuf开发环境完成了。

    相关文章

      网友评论

        本文标题:window下配置protobuf在IDEA上开发java项目

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