fun*_*ust 6 import code-generation path protocol-buffers git-submodules
我使用 git-submodules 在多个项目之间共享 .proto 文件。
现在我的问题是如何正确设置导入?
在微服务环境中,所有服务存储库都有一个包含共享 .proto 文件的 git-submodule:
git.dev/proto
子模块)git.dev/proto
子模块)git.dev/proto
子模块)shared/shared.proto
)shared/shared.proto
)目前,服务原型文件的典型标头如下所示:
git.dev/proto/fooservice/fooservice.proto
syntax = "proto3";
package abc.foo;
import "shared/shared.proto";
option go_package = "foopb";
option java_multiple_files = true;
option java_outer_classname = "FooProto";
option java_package = "com.abc.foo";
Run Code Online (Sandbox Code Playgroud)
import "shared/shared.proto";
适用于 git.dev/proto 存储库的 linting ,但会在代码生成期间导致导入问题。import "proto/shared/shared.proto";
适用于服务存储库中的代码生成,但当然会导致 git.dev/proto 存储库中的linting问题proto
文件夹吗?go_options.import_path
为 例如git.dev/fooservice
生成正确的 golang 导入路径for x in proto/**/*.proto; do protoc -Iproto --go_out=plugins=grpc,paths=source_relative:src/proto $x; done
但只要我不将完整的 git 路径添加到 go_package 选项中,这就不会产生有效的 golang 导入路径。这样做当然与 git-submodule 方法冲突(选择哪个 git repo 路径, /proto 或 /*service.git ?)。谢谢!
归档时间: |
|
查看次数: |
2471 次 |
最近记录: |