Не удается установить протокол в Windows

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

Я импортировал следующие проекты из репозитория protobuf git, но не смог найти файл protoc.exe в каталогах проекта.

введите здесь описание изображения

Сами проекты жалуются на невозможность ссылаться на определенные классы.введите здесь описание изображения

Когда я попытался скомпилировать и построить проект protobuf-parent с помощью maven, я получаю ошибки, как показано ниже.

main:
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] Protocol Buffers [Parent] .......................... SUCCESS [  0.173 s]
[INFO] Protocol Buffers [Core] ............................ FAILURE [  0.736 s]
[INFO] Protocol Buffers [Util] ............................ SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.347 s
[INFO] Finished at: 2017-08-30T20:52:49-07:00
[INFO] Final Memory: 16M/220M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.8:run (compile-protoc) on project protobuf-java: An Ant BuildException has occured: C:\scratch1\protobuf\protobuf-master\java\core\src\main\proto does not exist.
[ERROR] around Ant part ...<pathconvert property="proto.files" pathsep=" " refid="proto.path"/>... @ 10:71 in C:\scratch1\protobuf\protobuf-master\java\core\target\antrun\build-main.xml
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

person Sharat Chandra    schedule 31.08.2017    source источник


Ответы (1)


Я рекомендую вам использовать предварительно скомпилированный двоичный файл protoc.exe в Windows. Загрузить пакеты protoc-x.x.x-win32.zip и protoc-x.x.x-java.zip

Разархивируйте файлы, вы должны получить такие папки (перечислены только несколько ключевых файлов):

C:\projects\protoc\protoc-x.x.x-win32\bin\protoc.exe
C:\projects\protoc\protoc-x.x.x\protobuf.pc.in
C:\projects\protoc\protoc-x.x.x\java\pom.xml
C:\projects\protoc\protoc-x.x.x\java\core\*
C:\projects\protoc\protoc-x.x.x\java\util\*

Скомпилируйте java-проект с помощью Maven, см. этот вспомогательный скрипт bat:

cd C:\projects\protoc\protobuf-x.x.x\java
set JAVA_HOME=c:\program files\Java\jdk1.7.0_75
"c:\apps\apache-maven\bin\mvn.cmd" "-Dprotobuf.source.dir=C:\projects\protoc\protoc-x.x.x-win32\bin" package

Вы должны найти файлы jar в следующих папках, это файлы, которые вы встраиваете в свой проект при использовании MyStructureProto.java или других объектов protobuf (байты в объект, объект в байты).

C:\projects\protoc\protoc-x.x.x\java\core\target\protobuf-java-3.3.0.jar
C:\projects\protoc\protoc-x.x.x\java\util\target\protobuf-java-util-3.3.0.jar

Используйте protoc.exe для создания реализации Java из дескриптора шаблона .proto:

C:\projects\protoc\protoc-x.x.x-win32\bin\protoc.exe --java_out=. MyStructureProto.proto
person Whome    schedule 31.08.2017