У Bazel есть ошибка при обработке файлов protobuf.Как я могу решить это временно? - PullRequest
0 голосов
/ 25 мая 2018

У меня проблема со сборкой базы кода с помощью Bazel, Go и Protobuf.Файлы Protobuf не отображаются правильно Bazel Gezelle при генерации.Я думаю, что это известная ошибка .Я открыл свой билет .Если это проблема, я не ожидаю, что она будет решена в ближайшее время.Он был помечен как P2 и был открыт с октября.В настоящее время я ищу решение проблемы.

Мы используем пользовательский плагин Protobuf при создании наших файлов protobuf.Мой мыслительный процесс заключается в том, чтобы сгенерировать файлы protobuf вручную и заставить Bazel игнорировать файлы protobuf, просто используя уже сгенерированный код.

Похоже ли это на то, что будет работать?Как бы я это сделал?Могу ли я попросить Гезель игнорировать файлы Protobuf для меня?

Спасибо, что уделили время

1 Ответ

0 голосов
/ 25 мая 2018

Копирование моего ответа на bazelbuild / bazel-gazelle # 209 для всех, кто столкнулся с той же проблемой.


Да, bazelbuild / bazel # 3867 это проблема.

Всякий раз, когда вы создаете proto_library с помощью Bazel (для любого языка, не только для Go), Bazel считает, что импорт относится к корню хранилища (либо в вашем локальном хранилище, либо в любом изваши внешние репозитории).Я предполагаю, что brand.proto импортирует github.com/xxx/jscode/jsge/pkg/paging/proto/page.proto.Поскольку файл, который вы хотите импортировать, на самом деле jsge/pkg/paging/proto/page.proto, protoc не найдет его при вызове Bazel.

Поскольку это проблема с proto_library, Газель или rules_go не могут с этим поделать,Если реализован bazelbuild / bazel # 3867 , вы сможете настроить proto_library пути импорта.До этого вы не сможете создавать proto_library правил без их изменения.

К сожалению, лучший совет, который я могу предложить на данный момент, - это проверить предварительно созданные файлы .pb.go и включитьте, что в ваших go_library правилах.Если вы добавите комментарий # gazelle:proto disable в корневой файл сборки, он будет игнорировать файлы .proto и будет включать файлы .pb.go.

...