Использование импорта protobuf (т.е. google / protobuf / timestamp.proto) с помощью wire - PullRequest
0 голосов
/ 09 февраля 2020

Я пытаюсь сгенерировать файлы, используя квадрат Wire . Я мог бы запустить их сэмплы все хорошо, но как только я добавил import "google/protobuf/timestamp.proto"; в их файл .proto, чтобы проверить, как провод обрабатывает временные метки, компилятор сломался с этим исключением:

Exception in thread "main" java.io.FileNotFoundException: Failed to locate google/protobuf/timestamp.proto in [src/main/proto]

У меня есть прото c на моем пути ($PATH=...usr/local/bin, protoc находится там. timestamp.proto находится под /usr/local/include/google/protobuf). Я ожидал, что компилятор проводов будет использовать proto c из моей системы и, следовательно, сможет использовать его.

Пробовал работающий провод с плагином gradle и использовал предварительно скомпилированный jar для того же результата.

ОБНОВЛЕНИЕ: Также попытался использовать плагин gradle в android студийном проекте до такой же степени.

* What went wrong:
Execution failed for task ':app:generateProtos'.
> unable to resolve 1 imports:
    google/protobuf/timestamp.proto
  searching 0 proto paths:

1 Ответ

1 голос
/ 16 февраля 2020

Хорошо, после некоторого поиска и экспериментов выясняется, что:

1) Провод не поддерживает синтаксис proto3 (пока)

2) Отметка времени записана в синтаксисе proto3, и поэтому wire просто не поддерживает его.

Поэтому ответ таков: вы не можете импортировать timestamp.proto и использовать его для генерации классов с помощью wire, пока не будет реализована поддержка proto3.

...