Java 马文;Protobuf编译错误:在包com.google.Protobuf中找不到符号
我不熟悉Linux和Protobuf。。我需要帮助 我正在尝试“mvn包”一个包含许多“.proto”文件的项目,当然还有一个pom.xml文件 我在Ubuntu上工作 ======================================= 错误 当我运行“mvn包”时,我收到以下错误: 之后Java 马文;Protobuf编译错误:在包com.google.Protobuf中找不到符号,java,maven,maven-2,maven-3,protocol-buffers,Java,Maven,Maven 2,Maven 3,Protocol Buffers,我不熟悉Linux和Protobuf。。我需要帮助 我正在尝试“mvn包”一个包含许多“.proto”文件的项目,当然还有一个pom.xml文件 我在Ubuntu上工作 ======================================= 错误 当我运行“mvn包”时,我收到以下错误: 之后 ... Compiling 11 source files to .../target/classes ... 我得到了一大堆这样的错误: [ERROR] .../target/generate
...
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.xml文件,其中取出了groupId和artifactId:
4.0.0
*****
=======================================
可能的相关性?
有人能帮忙吗
=======================================
进展
显然这是一个插件故障:
我也有同样的问题。
直接从google构建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/protobufjava/2.5.0/中的jar文件丢失了
可能尝试在pom.xml中使用版本2.5.0和/或手动复制JAR文件
cheers当安装的protoc版本与pom中列出的版本不匹配时,我遇到了这个问题。匹配版本修复了问题。在我的例子中,我不得不将protoc版本切换回2.4.1以匹配POM。protoc--version
必须与POM.xml
文件(protobuf-java-2.5.0.jar
)中设置的版本相同。我的问题是一个单元测试从主文件夹扩展了类。
我用以下方法解决了这个问题:
org.codehaus.mojo
构建助手maven插件
1.9.1
添加源
生成源
添加源
src/test/java
src/main/java
对于我来说,在构建脚本中使用下面的代码后,问题就解决了
<clearOutputDirectory>false</clearOutputDirectory
<build>
<extensions>
<extension>
<groupId>kr.motd.maven</groupId>
<artifactId>os-maven-plugin</artifactId>
<version>1.5.0.Final</version>
</extension>
</extensions>
<plugins>
<plugin>
<groupId>org.xolstice.maven.plugins</groupId>
<artifactId>protobuf-maven-plugin</artifactId>
<version>0.5.1</version>
<configuration>
<protocArtifact>com.google.protobuf:protoc:3.6.1:exe:${os.detected.classifier}</protocArtifact>
<pluginId>grpc-java</pluginId>
<pluginArtifact>io.grpc:protoc-gen-grpc-java:1.19.0:exe:${os.detected.classifier}</pluginArtifact>
<clearOutputDirectory>false</clearOutputDirectory>
<outputDirectory>${basedir}/src/main/java/</outputDirectory>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>compile-custom</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
false问题出现在protoc和protobuf jar版本不匹配的地方,保持相同的版本就可以了。对于依赖关系,您需要签入pom.xml文件。+1个很好的问题组合。在我的pom中将2.4.1更改为2.5.0也解决了我的问题。这对我来说是最简单的解决方案!我使用3.9.0作为“protobuf.version”,3.10.0作为“protoc.version”,并遇到了这个问题。将它们都更改为3.9.0修复了此问题。谢谢大家!--jsp
/usr/local/lib/:/usr/:/usr/lib/:/usr/local/
apt-get install protobuf-compiler
protoc --version
libprotoc 2.5.0
[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:
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
<clearOutputDirectory>false</clearOutputDirectory
<build>
<extensions>
<extension>
<groupId>kr.motd.maven</groupId>
<artifactId>os-maven-plugin</artifactId>
<version>1.5.0.Final</version>
</extension>
</extensions>
<plugins>
<plugin>
<groupId>org.xolstice.maven.plugins</groupId>
<artifactId>protobuf-maven-plugin</artifactId>
<version>0.5.1</version>
<configuration>
<protocArtifact>com.google.protobuf:protoc:3.6.1:exe:${os.detected.classifier}</protocArtifact>
<pluginId>grpc-java</pluginId>
<pluginArtifact>io.grpc:protoc-gen-grpc-java:1.19.0:exe:${os.detected.classifier}</pluginArtifact>
<clearOutputDirectory>false</clearOutputDirectory>
<outputDirectory>${basedir}/src/main/java/</outputDirectory>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>compile-custom</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>