# #go #protocol-buffers #proto
Вопрос:
Я пытаюсь написать плагин для создания файлов проверки go. Который использует https://github.com/mwitkow/go-proto-validators и валидатор прокси-сервера посланника https://github.com/envoyproxy/protoc-gen-validate. Ниже приведена моя команда
protoc
--proto_path=${GOPATH}/src
--proto_path=${GOPATH}/pkg/mod/github.com/gogo/protobuf@v1.3.2
--proto_path=${GOPATH}/pkg/mod/github.com/envoyproxy/protoc-gen-validate@v0.1.0
--proto_path=.
--gogo_out=.
—-validate_out=“lang=go:.”
--govalidators_out=gogoimport=true:.
proto/*.proto
когда я выполняю команду выше, я получаю ошибку ниже? любое предложение эксперта о том, как это решить. Ценю вашу помощь.
zsh: command not found: --proto_path=.
zsh: command not found: --govalidators_out=gogoimport=true:.
После добавления отсутствующего «/»
protoc
--proto_path=${GOPATH}/src
--proto_path=${GOPATH}/pkg/mod/github.com/gogo/protobuf@v1.3.2
--proto_path=${GOPATH}/pkg/mod/github.com/envoyproxy/protoc-gen-validate@v0.1.0
--proto_path=.
--gogo_out=.
-—go_out=":./generated"
—-validate_out="lang=go:./generated"
--govalidators_out=gogoimport=true:.
proto/test.proto
Я получаю Неизвестный флаг: -?
Ответ №1:
вы пропустили
после получения-подтверждения и позже…
protoc
--proto_path=${GOPATH}/src
--proto_path=${GOPATH}/pkg/mod/github.com/gogo/protobuf@v1.3.2
--proto_path=${GOPATH}/pkg/mod/github.com/envoyproxy/protoc-gen-validate@v0.1.0
--proto_path=.
--gogo_out=.
—-validate_out="lang=go:."
--govalidators_out=gogoimport=true:.
proto/*.proto
Комментарии:
1. спасибо, я соответствующим образом изменяю свою команду. Теперь появляется неизвестный флаг: -? любые предложения по этому поводу
2. Я предлагаю вам удалить все флаги (или половину из них), чтобы найти один неизвестный
protoc
. Вполне возможно, что один из плагинов, представленных в команде, отсутствует (если не все).3. Прошу прощения, я не понял, что я новичок в этом деле. Какие флаги вы имеете в виду здесь
4. каждое из значений , которые вы передаете
protoc
, в вашем примере все они начинаются с--
,--proto_path
является (давайте назовем это) «родным» для протокола, в то времяvalidate_out
govalidators_out
как иgogo_out
не являются. не родной, поставляемый плагинами (вы разместили две ссылки. Некоторые из них не найдены, я думаю, вы забыли их установить (см. Инструкции на каждой из страниц плагинов github).