Использовать уже скомпилированные Protobuf-классы в новых .proto-файлах

#java #protocol-buffers

#java #протокол-буферы

Вопрос:

Я импортировал библиотеку, которая содержит классы, созданные protobuf.

Я хотел бы отправлять объекты этого класса как часть других сообщений protobuf. Но protoc (очевидно?) жалуется на отсутствие определений:

Не удалось разрешить ссылку на тип ‘ExistingProtobufLibraryClass’.

Я мог бы, конечно, скопировать существующий .proto- источник из источника библиотеки, но тогда я подозреваю, что протокол сгенерирует две версии этого класса, что было бы довольно раздражающе.

Есть идеи, как это решить?

Комментарии:

1. Вы играли с различными параметрами «импорта» в protocol / .proto?

2. Да.. Я могу импортировать proto-def уже скомпилированного класса, и он работает. Если бы я мог только сказать protocol не генерировать для него код, этого было бы достаточно.

Ответ №1:

Вам необходимо импортировать существующий класс proto.

 import "somepath/existing_protobuf_library_class.proto"
  

протокол не будет генерировать дополнительный код, сгенерированный Java-код просто импортирует предполагаемые другие классы.