Протокол буфера: как импортировать? - PullRequest
2 голосов
/ 30 октября 2011

У меня есть 2 файла .proto:

Первый файл:

package com.test.model;

message ProtoModel  {
    required CustomObj custom=1;
}

Второй файл:

package com.test.model;

message CustomObj {
    required string smth=1;
}

Проблема здесь в том, что «CustomObj» называется «неразрешенной ссылкой».Таким образом, я попытался импортировать второй файл в первый файл:

import "com/test/model/firstFile.proto"

package com.test.model;    

message ProtoModel  {
    required CustomObj custom=1;
}

Я все еще получаю ту же проблему !!

1 Ответ

5 голосов
/ 30 октября 2011

Оператор импорта - это папка относительно места, где вы вызываете protoc.Похоже, что вместо этого вы относились к нему как к пакету.

например, если (как и я) вы храните оба файла в src/main/resources, вы бы вызвали protoc следующим образом:

protoc src/main/resources/firstFile.proto src/main/resources/secondFile.proto --java_out=src/generated/java

, и ваш оператор импорта будет import "src/main/resources/firstFile.proto"

Если вы хотите хранить файлы во вложенных папках в соответствии с именем пакета, то просто добавьте его соответствующим образом после имени верхнего уровня.

НТН

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...