【问题标题】:Generated protoc file creates a target source with error生成的 protoc 文件创建错误的目标源
【发布时间】:2019-11-27 23:06:59
【问题描述】:

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

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

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

【问题讨论】:

    标签: mysql maven grpc grpc-java protoc


    【解决方案1】:

    看起来“找不到符号”指的是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>
    

    最初这个答案建议使用 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>
    

    【讨论】:

    • 谢谢!因为 maven 不会用这个问题划清界限,所以我不明白为什么它不起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多