Как правильно запустить протокол с другим импортом файлов?

В моем основном файле для создания есть следующие import :

import "protos/google_annotations.proto";
import "protos/nakama_annotations.proto";
import "protos/nakama_api.proto";

Структура папок:

├── lib
    ├── protos
         ├── google_annotations.proto
         ├── nakama_annotations.proto
         ├── nakama_api.proto
         ├── apigrpc.proto   <--- this is the file to generate.
    

Синтаксис выделения в порядке. (Android Studio)

Я получил ошибку в двух случаях:

1.

  • Команда выполняется в каталоге protos

  • Беги protoc apigrpc.proto --java_out=. --proto_path=.

  • Получить эту ошибку

     protos/google_annotations.proto: File not found.
     protos/nakama_annotations.proto: File not found.
     protos/nakama_api.proto: File not found.
    
  1. Указать все файлы импорта
  • Команда выполняется в каталоге protos

  • Бежать

    protoc apigrpc.proto --java_out=. --proto_path=google_annotations.proto --proto_path=nakama_annotations.proto --proto_path=nakama_api.proto

  • Получите эту ошибку apigrpc.proto: File does not reside within any path specified using --proto_path

Что я сделал не так?


person O.Chounry    schedule 20.10.2020    source источник


Ответы (1)


Я только что нашел, что не так. Это около import.

Мне нужно удалить префекс protos, потому что файл импорта находится на том же уровне каталога.

Таким образом, импорт становится таким:

import "google_annotations.proto";
import "nakama_annotations.proto";
import "nakama_api.proto";

Причина, по которой я поставил protos раньше, потому что плагин Android Studio не показывает красную подсветку, когда я так ставлю. Теперь, после удаления, он подсвечивается красным, но работает.

person O.Chounry    schedule 20.10.2020