【问题标题】:Unable to install protoc on Windows无法在 Windows 上安装协议
【发布时间】:2017-08-31 04:03:22
【问题描述】:

我在构建用于从 proto 文件生成 java 类文件的 protoc jar 时发现问题。在将项目设置到可以从 .proto 文件生成 java 类文件的水平方面,我非常感谢任何形式的指导或帮助

我从protobuf git repo导入了以下项目,但一直无法在项目目录中找到protoc.exe文件。

项目本身抱怨无法引用某些类。

当我尝试使用 maven 编译和构建 protobuf-parent 项目时,出现如下所示的错误

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

【问题讨论】:

    标签: maven protocol-buffers protobuf-net proto


    【解决方案1】:

    我建议您在 Windows 上使用预编译的 protoc.exe 二进制文件。 Download protoc-x.x.x-win32.zip and protoc-x.x.x-java.zip packages

    解压文件你应该得到一个这样的文件夹(只列出几个关键文件):

    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\*
    

    使用 Maven 编译 java 项目,请看这个 helper 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 从 .proto 模板描述符创建 java 实现:

    C:\projects\protoc\protoc-x.x.x-win32\bin\protoc.exe --java_out=. MyStructureProto.proto
    

    【讨论】:

      猜你喜欢
      • 2012-11-16
      • 2018-02-02
      • 2020-02-17
      • 2017-08-09
      • 2016-05-20
      • 2017-10-08
      • 2017-04-13
      • 2018-01-08
      • 2020-05-08
      相关资源
      最近更新 更多