Maven和Protobuf编译错误:无法在com.google.protobuf包中找到符号

我是Linux和Protobuf的新手……我需要帮助。

我正在尝试“mvn package”一个包含许多“.proto”文件的项目,当然还有一个pom.xml文件……

我正在研究Ubuntu

=======================================

错误

当我运行“mvn package”时,我收到此错误:

... Compiling 11 source files to .../target/classes ... 

我收到了一堆这些错误:

 [ERROR] .../target/generated-sources/...java:[16457,30] cannot find symbol [ERROR] symbol : class Parser [ERROR] location: package com.google.protobuf [ERROR] [ERROR] .../target/generated-sources/...java:[17154,37] cannot find symbol [ERROR] symbol : class Parser [ERROR] location: package com.google.protobuf [ERROR] [ERROR] .../target/generated-sources/...java:[17165,30] cannot find symbol [ERROR] symbol : class Parser [ERROR] location: package com.google.protobuf [ERROR] [ERROR] .../target/generated-sources/...java:[17909,37] cannot find symbol [ERROR] symbol : class Parser [ERROR] location: package com.google.protobuf [ERROR] 

=======================================

POM

这是pom.xml文件,取出了groupId&artifactId:

  4.0.0  ***** ***** 1.0-SNAPSHOT  ***** 1.0-SNAPSHOT  ${project.basedir}/src ${project.basedir}/target/generated-sources    com.google.protobuf protobuf-java 2.4.1 compile    ${project.basedir}/src   maven-compiler-plugin 2.0.2  1.6 1.6 **/commonapps/**    maven-antrun-plugin   generate-sources generate-sources                ${target.gen.source.path}   run        

=======================================

PROTOBUF安装

我弄完了

 ./configure make make check make install 

在protobuf /,

 mvn test mvn install mvn package 

在protobuf / java中。

我在protobuf / java / target中使用了jar

并通过运行将其添加到我的maven仓库:

 mvn install:install-file -Dpackaging=jar -DgeneratePom=true -DgroupId=com.google.protobuf -DartifactId=protobuf-java -Dfile=protobuf-java-2.4.1.jar -Dversion=2.4.1 

请注意,我已经弄乱了$ LD_LIBRARY_PATH。 目前当我运行echo它时,我得到:

 /usr/local/lib/:/usr/:/usr/lib/:/usr/local/ 

是的….你可以告诉我没有关于设置$ LD_LIBRARY_PATH的线索

我也跑了:

 apt-get install protobuf-compiler 

=======================================

PROTOC安装

我忘记了我做protoc的工作,但是当我跑步时

 protoc --version 

我明白了

 libprotoc 2.5.0 

=======================================

我的问题类似于:

使用带有java和scala的protobufs的问题

maven编译失败

=======================================

可能的相关?

‘mvn install’之后仍然找不到包

http://www.scriptol.com/programming/protocol-buffers-tutorial.php

有人可以帮忙吗?

=======================================

进展

显然这是一个插件失败:

https://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile (default-compile) on project casprotobuf: Compilation failure: Compilation failure: 

我有同样的问题。 直接从谷歌建立protobuf源(我使用2.5.0)并做

 mvn install:install-file -Dpackaging=jar -DgeneratePom=true -DgroupId=com.google.protobuf -DartifactId=protobuf-java -Dfile=protobuf-java-2.5.0.jar -Dversion=2.5.0 

为我解决了这个问题。

在我之前的试验中,我注意到/root/.m2/repository/com/google/protobuf/protobuf-java/2.5.0/中的jar文件丢失了。

也许尝试在pom.xml中使用2.5.0版本和/或手动复制jarfile。

干杯

当安装的protoc版本与pom中列出的版本不匹配时,我遇到了这个问题。 匹配版本修复了问题。 在我的情况下,我不得不将我的protoc版本切换回2.4.1以匹配POM。

protoc --version必须与pom.xml文件( protobuf-java-2.5.0.jar )中设置的版本相同。

我的问题是一个unit testing从主文件夹扩展类。 我解决了它:

   org.codehaus.mojo build-helper-maven-plugin 1.9.1   add-source generate-sources  add-source    src/test/java src/main/java