Укажите базовый пакет в сборке protobuf в golang - PullRequest
0 голосов
/ 04 марта 2019

У меня есть пакет golang github.com/user/protoapp, в этом пакете у меня есть папка proto, содержащая файлы protobuf. * ​​1003 *

github.com/user/protoapp
|-proto
|-proto/app1
|-proto/app2

прото-файлы в app1 и app2 имеют соответствующие пакеты app1 и app;

Прото-файл из proto/app1 импортирует файл из proto/app2, как import "app2/messages.proto";, после компиляции в app1.pb.go он становится import app2, а protoapp не компилируется.Как сделать, чтобы импорт в *.pb.go файлах стал import "github.com/user/protoapp/proto/app2", а не import "app2"?

Ответы [ 2 ]

0 голосов
/ 05 марта 2019

Никогда не указывайте половину пути "/app2/messages.proto", это не будет работать.

  1. Укажите полное имя импорта
import "github.com/user/protoapp/proto/app2/messages.proto";

и

Определить с именем пакета
//if we does'nt add package we define it will show error
package messagedata;
0 голосов
/ 04 марта 2019

вам нужно сделать свой импорт в вашем прото полном пути, как в Go:

вместо import "app2/messages.proto";

try import "github.com/user/protoapp/proto/app2/messages.proto";

...