Grpc无法解析符号GreeterGrpc

Ale*_*lex 4 java grpc

我在这里链接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。

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

Sto*_*ica 6

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

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

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


abd*_*hid 5

Protobuf 插件假定 Protobuf 文件 (*.proto) 的组织方式与 Java 源文件在 sourceSet 中的组织方式相同。sourceSet 的 Protobuf 文件在单个 protoc 运行中编译,生成的文件将添加到该 sourceSet () 的 Java 编译运行的输入中。

sourceSets {
    main {
        java {
            srcDirs 'build/generated/source/proto/main/grpc'
            srcDirs 'build/generated/source/proto/main/java'
        }
    }
}
Run Code Online (Sandbox Code Playgroud)