Конфликт версий среды выполнения grpc-gateway
с последних нескольких дней генератор протоколов генерирует код с версией v2 github.com/grpc-ecosystem/grpc-gateway. Я хочу продолжать использовать github.com/grpc-ecosystem/grpc-gateway v1.16.0. Я не могу удалить версию v2, которая вызывает конфликт. Я попытался удалить из go.mod, очистив из $GOPATH. Я полагаю, что мой генератор протоколов не может использовать версию v1. Пожалуйста, подскажите, как мне синхронизировать пакет среды выполнения grpc-gateway.
Использование приведенных ниже команд для создания сообщений и обслуживания.
protoc -I . --go-grpc_out=. api/protobuf-spec/catalog_fetch/*.proto
protoc -I . --grpc-gateway_out=logtostderr=true:. api/protobuf-spec/catalog_fetch/*.proto
Примечание. Он генерирует как файл grpc.pb.go, так и файл pb.go, что также вызывает проблемы.
cannot use mux (type *"github.com/grpc-ecosystem/grpc-gateway/runtime".ServeMux) as type *"github.com/grpc-ecosystem/grpc-gateway/v2/runtime".ServeMux ```
3 ответа
Я думаю, вы установили
v2
версия генератора. Вы не можете использовать с более новыми версиями генераторов протобуфа golang. Если вы хотите продолжать использовать
v1.16.0
, вы можете скачать генератор со страницы релизов https://github.com/grpc-ecosystem/grpc-gateway/releases/tag/v1.16.0 .
Я потратил 3 часа на отладку той же проблемы.
Вы должны удалить двоичный файл из своего
GOPATH
а также
GOROOT
.
Для простоты просто используйте
which protoc-gen-grpc-gateway
.
Это должно указать вам на двоичный
protoc
используется под капотом. Удалите его и запустите повторно
go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway@v1.16.0
.
Я тоже столкнулся с той же проблемой. Есть ли способ решения вышеуказанной проблемы?