Grpc 无法解析符号 GreeterGrpc
Posted
技术标签:
【中文标题】Grpc 无法解析符号 GreeterGrpc【英文标题】:Grpc cannot resolve symbol GreeterGrpc 【发布时间】:2017-11-05 20:45:08 【问题描述】:我正在点击链接https://github.com/grpc/grpc-java/tree/master/examples/src/main/java/io/grpc/examples/helloworld 来尝试让 grpc 正常工作。
这是最终的文件夹结构。
而我的HelloWorldServer.java和https://github.com/grpc/grpc-java/blob/master/examples/src/main/java/io/grpc/examples/helloworld/HelloWorldServer.java一样,只是包名不同。
但 Intellij 告诉它无法解析符号 GreeterGrpc。
有人可以帮我离开这里吗?
【问题讨论】:
【参考方案1】:注意GreeterGrpc.java
在generated-sources
之下,
但 IntelliJ 不知道它是一个源文件。
我看到target/generated-sources/protobuf/java
被标记为生成源根目录,但target/generated-sources/protobuf/grpc-java
不是。
通常 IntelliJ 会从 pom.xml
中的配置中选择它。
也许你没有在那里正确配置一些东西。
您可以尝试通过右键单击pom.xml
重新导入 Maven 模块,
并选择 Maven,然后选择 Reimport。
grpc-java
的图标应该变成带齿轮的蓝色,
像java
在同一目录级别。
如果这不起作用,
那么您可以手动将grpc-java
标记为生成的源根目录:
右键单击它,选择Mark Directory as,然后选择Generated Sources Root。
【讨论】:
【参考方案2】:Protobuf 插件假定 Protobuf 文件 (*.proto) 在 sourceSets 中的组织方式与 Java 源文件相同。 sourceSet 的 Protobuf 文件在单个 protoc 运行中编译,生成的文件将添加到该 sourceSet () 的 Java 编译运行的输入中。
sourceSets
main
java
srcDirs 'build/generated/source/proto/main/grpc'
srcDirs 'build/generated/source/proto/main/java'
感谢@https://medium.com/@DivyaJaisawal/generate-java-code-from-proto-file-using-gradle-1fb9fe64e046
【讨论】:
以上是关于Grpc 无法解析符号 GreeterGrpc的主要内容,如果未能解决你的问题,请参考以下文章