Конфликт версий среды выполнения 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.

Я тоже столкнулся с той же проблемой. Есть ли способ решения вышеуказанной проблемы?

Другие вопросы по тегам