Java 马文;Protobuf编译错误:在包com.google.Protobuf中找不到符号

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

我不熟悉Linux和Protobuf。。我需要帮助

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

我在Ubuntu上工作

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

错误 当我运行“mvn包”时,我收到以下错误:

之后

...
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>