Неразрешенные зависимости в исходном коде java буфера протокола

Я пытаюсь использовать буферы протокола в своем проекте (веб-приложении) на основе Java. Я скачал zip Protocol Buffers 2.4.0a full source(C++,Java,Python) и Protocol Buffers 2.4.0 compiler-Windows binary.

Мне удалось создать файл .proto и сгенерировать необходимые классы Java для моего проекта с помощью компилятора protoc. Затем я включил папку java (protobuf-2.4.0a\java\src\main\java......), содержащуюся в загруженном заархивированном исходном коде PB, в каталог src моего проекта. Однако, как я вижу в своей IDE, некоторые из его зависимостей от этих файлов еще не разрешены. и я не смог десериализовать сообщения, когда пробовал (думаю, однако, что смог сериализовать).

Не могли бы вы помочь мне, сообщив мне, что нужно исправить? Разве я не должен вместо этого помещать банку в свой путь к классам, а не включать исходный код PB в мою папку src?

(Я нигде не использовал maven для загрузки чего-либо. Я не знаю, как использовать maven)


person Aklin    schedule 09.03.2011    source источник
comment
Некоторые из его зависимостей от этих файлов - не могли бы вы дать более подробную информацию?   -  person Jon Skeet    schedule 09.03.2011
comment
в файле Descriptors.java в коде src есть оператор импорта: com.google.protobuf.DescriptorProtos.*; Этот пакет вообще не существует   -  person Aklin    schedule 09.03.2011
comment
Хорошо, я задавался вопросом, может ли это быть так... но я удивлен, что вам удалось сериализовать что-либо тогда.   -  person Jon Skeet    schedule 09.03.2011
comment
может быть, он не был сериализован, но у меня не было ошибок при сериализации (кроме десериализации), и я смог получить длину сериализованных байтов   -  person Aklin    schedule 09.03.2011


Ответы (1)


Вам необходимо сгенерировать и построить код Java, соответствующий дескрипторам protobuf.

Инструкции для этого есть в нижней части README.txt. файл в каталоге java.

person Jon Skeet    schedule 09.03.2011
comment
Спасибо, Джон... Я не мог понять этот синтаксис... если бы вы могли немного пояснить, пожалуйста..... 2) Вызвать протокол для сборки DescriptorProtos.java: $ protoc --java_out=src/main/java -I../ источник \ ../src/google/protobuf/descriptor.proto - person Aklin; 09.03.2011
comment
@aklin: $ представляет собой командную строку unix, а \ - это просто способ сказать, продолжается ли следующая строка. Просто запустите protoc --java_out=src/main/java -I../src ../src/google/protobuf/descriptor.proto - person Jon Skeet; 09.03.2011
comment
Спасибо, Джон! ваше решение сработало! но это правильный способ включить файлы src PB в мой собственный код, скорее я не могу включить банку в свой путь к классам? - person Aklin; 10.03.2011
comment
@aklin: вам не нужно - как только исходники Java будут сгенерированы, вы можете собрать весь код PB в свой собственный файл jar. Просто он не приходит в виде jar-файла. - person Jon Skeet; 10.03.2011
comment
Большое спасибо, Джон!! Отличная помощь! - person Aklin; 10.03.2011
comment
Буфер протокола Google такой беспорядок для установки, получая всевозможные ошибки зависимостей, и у него очень плохая документация на сайте google, по крайней мере, они могут добавить простые пошаговые шаги установки ... я потратил более шести часов, пытаясь добавить jar, добавить исходные файлы и получить ошибки, и невозможно сгенерировать DesriptorProtos:/ - person ; 22.03.2015