生成的协议文件创建了一个错误的目标源

Generated protoc file creates a target source with error

我尝试制作一个连接到数据库并获取信息并通过 grpc 在桌面应用程序中输出它们的项目。 但是,当我编译它时,我在目标文件中得到 "Error:(20,18) java: cannot find symbol" (它是由 protoc.target 自动生成的)。 我不明白这个问题。我试图更改 mvn 的编译器,更改 protoc 上的版本,设置不同的 JDK,一切都变得更糟了。

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

我现在不知道该怎么办。如有帮助,将不胜感激!

看起来 "cannot find symbol" 指的是 javax.annotation.Generated。在这种情况下,您可以添加对注释的依赖-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>

最初这个答案建议 javax.annotation-api,但该库已获得 CDDL 许可,因此 gRPC changed its recommendation

    <!-- The old suggestion. Uses CDDL-licensed library -->
    <dependency>
        <groupId>javax.annotation</groupId>
        <artifactId>javax.annotation-api</artifactId>
        <version>1.2</version>
    </dependency>