将'library'指令添加到使用protoc生成的dart代码中

时间:2018-09-23 13:27:07

标签: dart protocol-buffers protoc

有人可以告诉我如何使用领先的 library 指令获取protoc来生成dart文件吗?

我正在使用dart-protoc-plugin(v0.10.2)从proto文件生成我的dart,c ++,c#,js和java模型。我给人的印象是,没有办法让协议向生成的dart文件中添加“库”指令,直到我注意到该指令出现在另一个项目中(请参见date.pb.dart)。

如果我使用相同的文件(date.proto),则无法获得生成包含“ library”指令的dart文件的协议。

简而言之:我想获取一个包含以下内容的.proto文件

syntax = "proto3";

package another.proj.nspace;

message MyObj {
  ...
}

并产生一个带有开头“ library”指令的.dart文件,类似于以下代码段

///
//  Generated code. Do not modify.
///
// ignore_for_file: non_constant_identifier_names,library_prefixes
library another.proj.nspace;
...

注意:我不在乎指令的实际值,因为我可以重组代码以获得所需的结果。我只需要一种协议 add library 指令的方式...

我用来生成dart文件的基本命令是

protoc --proto_path=./ --dart_out="./" ./another/proj/nspace/date.proto

不幸的是,dart-protoc-plugin的README并不是很有帮助,我必须仔细阅读源代码才能找到可用的选项。目前看来,唯一的飞镖特定选项与grpc有关。

我尝试了其他语言(例如“库”和“基本路径”)中的选项,但没有成功。

如果可能的话,这将大大简化我的工作流程,但是我开始感到,date.pb.dart中的库指令是在代码生成后添加的。

1 个答案:

答案 0 :(得分:0)

经过一番询问后,似乎在某个阶段(see pull request)从protoc插件中删除了 library 指令,因此不再受支持。