我不明白 go_package_prefix 代码片段在生成 protobuf 文件中的用途
version: v1
managed:
enabled: true
go_package_prefix:
default: github.com/imsobad/grpc-gateway-demo
except:
- buf.build/googleapis/googleapis
plugins:
- plugin: buf.build/protocolbuffers/go:v1.30.0
out: gen/go
opt:
- paths=source_relative
- plugin: buf.build/grpc/go:v1.3.0
out: gen/go
opt:
- paths=source_relative
- require_unimplemented_servers=false
- plugin: grpc-gateway
out: gen/go
opt:
- paths=source_relative
- generate_unbound_methods=true
Run Code Online (Sandbox Code Playgroud)
我想了解命令“go_package_prefix”是如何工作的
小智 0
对于任何仍然感兴趣的人,根据文档: https ://buf.build/docs/generate/management-mode/ 托管模式可以帮助您或其他开发人员管理“buf”项目中的.proto文件,而不是单独管理它们。不过,文档应该比我解释得更好。所以读一下吧。真的。它有很好的记录。
不过我可以给你举一个例子。
假设您有一个.proto文件,如下所示:
syntax = "proto3";
package v1.model;
message SomeMessage {
string foo = 1;
uint32 bar = 2;
}
Run Code Online (Sandbox Code Playgroud)
请注意包规范,以及缺少 go_package 选项。
当使用带有默认前缀的托管模式时,您的包本质上是以您指定的前缀选项为前缀的。例如,您可以简单地指定com.your.domain/project为go_package_prefix默认值,然后,所有可能依赖于这些定义的编译原型将com.your.domain/project在其导入中作为前缀(无需为每个单独的原型文件指定 go_package)。
syntax = "proto3";
package v1.model;
message SomeMessage {
string foo = 1;
uint32 bar = 2;
}
Run Code Online (Sandbox Code Playgroud)
希望这能解释该选项背后的一些目的go_package_prefix。
注意:我不是母语人士,所以如果我的措辞或解释令人反感,请随时纠正我。
| 归档时间: |
|
| 查看次数: |
304 次 |
| 最近记录: |