我在同一文件夹中有两个proto src文件,让我们说:
第一个是
1 2 | syntax ="proto3"; package foo; |
第二个是
1 2 3 | syntax ="proto3"; import"foo.proto"; package bar; |
您可以看到它们具有不同的包名称,当我使用protoc逐一生成它们时(foo.proto是第一个原因),我生成了两个golang文件,但是我必须将它们放入2目录(您可以 不要将不同的包名称文件放在同一目录golang中)
1 2 | foo/foo.pb.go bar/bar.pb.go |
但是在
1 | import foo"." |
我要给protoc提供几个选项,但没有做任何建议吗?
- 您的.proto文件彼此相邻吗? 您是否尝试过安排文件夹,以使protoc的路径看起来像您要退出的路径? 因此:带有导入" foo / foo.proto"的proto bar / bar.proto?
-
通常,将所有原始文件放在自己的文件夹
protosfoo.proto ,protosbar.proto 中然后进行编译是最容易的。 然后可以将输出.pb.go 移到想要它们放入的包中。 - 所有这些原始文件都位于同一文件夹(具有不同的软件包)中,令人遗憾的是我无法更改-其他团队代码,他们将JAVA与pom.xml设置结合使用,似乎没有此类问题。
-
如果我可以将
option go_package 添加到原始文件中,那将解决此问题,但可惜我无法修改原始的原始文件。 似乎import_prefix 在这种情况下无法正常工作。
我相信添加