如何解决使用 GoLand 为 GO 编译 gRPC .proto 文件后丢失导入
我正在尝试找出一本 gRPC 书中的示例,但我很难弄清楚我所做的事情有什么问题。
我有一个 .proto 文件,我可以将它编译到 .pb.go 存根中。
我成功运行了这些命令,并为客户端和服务器生成了 .pb.go 文件,所以没有问题:
service % protoc -I ecommerce ecommerce/product_info.proto --go_out=plugins=grpc:./ecommerce
client % protoc -I ecommerce ecommerce/product_info.proto --go_out=plugins=grpc:./ecommerce
然而,虽然服务器的 go 文件可以解析所有导入,但客户端不会发生同样的情况。
查看文件夹结构,我期待一切顺利(我本周刚开始使用 go 和 gRPC,所以请理解)。
我的 IDE 是 GoLand,我怀疑路径有问题,但我现在不知道从哪里开始。
解决方法
根据评论,屏幕截图在 go.mod
中显示了 service
,但在 client
中没有。由于 goland 将在启用“Go Modules Integration”的情况下运行,因此需要一个模块(我强烈建议使用模块!)。
最简单的解决方法是在客户端文件夹中运行 go mod init [module-path]
(后跟 go mod tidy
)。您还可以在 backend
文件夹(或 productinfo
文件夹)中建立一个模块,由子文件夹共享。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。