美文网首页 从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