Внутри city.proto
файла Я хочу использовать (импортировать) файлы protobuf .proto
. В моем приложении golang я использую go модулей.
city.proto :
syntax = "proto3";
package proto;
import "google/protobuf/timestamp.proto";
option go_package = "./proto";
message City {
google.protobuf.Timestamp create_at = 1;
}
Когда я пытаюсь сгенерировать код из city.proto
файла, его поднять такую ошибку:
google/protobuf/timestamp.proto: File not found.
city.proto:3:1: Import "google/protobuf/timestamp.proto" was not found or had errors.
city.proto:25:5: "google.protobuf.Timestamp" is not defined.
Я создал папку proto
в каталоге моего проекта gRP C. Файл city.proto
находится в этой папке. Я запускаю такую команду:
protoc -I proto/ proto/city.proto --go_out=plugins=grpc:proto/city.
Эта команда работает только в тех случаях, когда я не использую импорт в прото-файле.
go версия :
go version go1.12.9 windows/amd64
proto c - версия :
libprotoc 3.11.4
эхо% GOPATH% :
C:\Users\NNogerbek\go
Внутри этого каталога я вижу три папки с такой структурой:
bin
protoc.exe
protoc-gen-go.exe
pkg
mod
**packages**
src
google.com
protobuf
timestamp.proto
Я запускаю такую команду:
go list -f "{{ .Path }} {{ .Dir }}" -m github.com/golang/protobuf
Результат команды:
github.com/golang/protobuf C:\Users\NNogerbek\go\pkg\mod\github.com\golang\protobuf@v1.4.0