生成的 protoc 文件创建了一个有错误的目标源

Dia*_*a G 1 mysql maven grpc protoc grpc-java

我试图制作一个连接到数据库并获取信息并通过 grpc 将它们输出到桌面应用程序的项目。但是,当我编译它时,我在目标文件(由 protoc 自动生成)中得到“错误:(20,18)java:找不到符号”。我无法理解这个问题。我试图改变mvn 的编译器,更改 protoc 上的版本,设置不同的 JDK,一切都变得更糟了。

我的项目可以在这里查看:https : //github.com/Diana-Ioana/grpc 我的数据库和崩溃的生成目标文件的错误是:https : //imgur.com/a/T6taLXF

我不知道现在该怎么办。任何帮助都会很棒,谢谢!

Eri*_*son 5

看起来“找不到符号”指的是javax.annotation.Generated. 在这种情况下,您可以添加对 annotations-api 的依赖:

    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>annotations-api</artifactId>
        <version>6.0.53</version>
        <!-- Generated has @Retention(SOURCE), so not needed at runtime -->
        <scope>provided</scope>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

最初此答案建议使用 javax.annotation-api,但该库已获得 CDDL 许可,因此gRPC 更改了其建议

    <!-- The old suggestion. Uses CDDL-licensed library -->
    <dependency>
        <groupId>javax.annotation</groupId>
        <artifactId>javax.annotation-api</artifactId>
        <version>1.2</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)