Grpc无法解析符号GreeterGrpc

时间:2017-06-05 06:18:45

标签: java grpc

我正在关注此处的https://github.com/grpc/grpc-java/tree/master/examples/src/main/java/io/grpc/examples/helloworld链接以尝试让grpc正常工作。

enter image description here

这是最终的文件夹结构。

我的HelloWorldServer.java与https://github.com/grpc/grpc-java/blob/master/examples/src/main/java/io/grpc/examples/helloworld/HelloWorldServer.java相同,但包名称除外。

但是Intellij告诉它无法解析符号GreeterGrpc。

有人可以帮助我离开这里吗?

2 个答案:

答案 0 :(得分:5)

请注意GreeterGrpc.java位于generated-sources下, 但是IntelliJ不知道它是一个源文件。

我看到target/generated-sources/protobuf/java被标记为生成的源根,但target/generated-sources/protobuf/grpc-java不是。 通常,IntelliJ会从pom.xml中的配置中选择它。 也许你没有在那里正确配置的东西。 您可以尝试通过右键单击pom.xml重新导入Maven模块, 然后选择 Maven ,然后选择重新导入grpc-java的图标应该用齿轮变为蓝色, 像java在同一目录级别。

如果不起作用, 然后您可以手动将grpc-java标记为生成的源根: 右键单击它,选择将目录标记为,然后选择生成的源根

答案 1 :(得分:2)

Protobuf插件假定Protobuf文件(* .proto)的组织方式与sourceSets中的Java源文件相同。 sourceSet的Protobuf文件在一次协议运行中进行编译,并将生成的文件添加到该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