2017-06-22 38 views
1

2个原文件golang代码,我有两个原型的src的文件,在同一个文件夹,让我们说:protoc生成属于不同的包

第一个1是foo.proto

syntax = "proto3"; 
package foo; 

二是bar.proto ,这需要进口foo.proto

syntax = "proto3"; 
import "foo.proto"; 
package bar; 

,你可以看到他们有不同的包名,当我使用protoc生成逐一,(foo.proto作为CAU的一号E),我有两个golang文件生成的,但我必须把它们放进2目录(你不能把不同的包名文件同一目录下,golang)

foo/foo.pb.go 
bar/bar.pb.go 

但里面bar.pb.go进口内使用本地导入路径,这就好比

import foo "." 

我tweeking这protoc提供了几个选项,但没有做这项工作,什么建议吗?

+0

是彼此相邻的.proto文件?你有没有试过安排文件夹,使protoc的路径看起来像你想要走出去的路径?那么:带导入“foo/foo.proto”的proto bar/bar.proto? –

+0

通常最简单的方法是在自己的文件夹protos/foo.proto,protos/bar.proto,然后编译所有的proto文件。输出'.pb.go'然后可以移动到你想要的包。 – RickyA

+0

所有这些原始文件位于相同的文件夹(不同的包),可悲的是我无法改变 - 其他团队的代码,他们使用的是与pom.xml安装的JAVA,似乎没有这些问题。 – rmrf100

回答

0

我相信加option go_package应该是正确的解决方案