Как правильно импортировать файлы protobuf? - PullRequest
0 голосов
/ 29 апреля 2020

Внутри 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
...