На самом деле я надеюсь, что импорт a.pb.go b будет таким: import github.com/cs/p/b.
Можно ли это сделать?
Да!
Необходимо указать путь импорта на этапе компиляции protoc
. Итак, предполагая, что ваш источник git находится по пути $GOPATH/src
, вы бы добавили флаг включения "-I.:$GOPATH/src"
примерно так:
protoc --go_out=plugins=grpc:. "-I.:$GOPATH/src" a/a.proto
После импорта для ссылки на любые типы сообщений используйте путь к области действия <package name>.<message name>
.
Например, определение (git hosted):
// this file resides here: ${GOPATH}/src/github.com/bib/pb/person.proto
package tutorial;
message Person {
string name = 1;
}
будет импортирован и на него будут ссылаться так:
import "github.com/bib/pb/person.proto"
message AddressBook {
repeated tutorial.Person people = 1;
}