Копирование моего ответа на 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.