微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法解析.proto文件中的导入

如何解决无法解析.proto文件中的导入

我在路径中创建了以下.proto文件:microservice / internal / proto-files / domain / repository.proto

Syntax = "proto3";

package domain;

option go_package = "microservice/internal/gRPC/domain";

message Repository {
  int64 id  = 1;
  string name = 2;
  int64 userId = 3;
  bool isPrivate = 4;
}

,并在另一个路径中跟随.proto文件:microservice / internal / proto-files / service

Syntax = "proto3";

package service;

option go_package = "microservice/internal/gRPC/service";

import "microservice/internal/proto-files/domain/repository.proto";

//RepositoryService DeFinition
service RepositoryService {
  rpc add (domain.Repository) returns (AddRepositoryResponse);
}

message AddRepositoryResponse {
  domain.Repository addedRepository = 1;
  Error error = 2;
}
message Error {
  string code = 1;
  string message = 2;
}

但是我的IDE(goland)无法解析repository-service.proto中的导入,而且当我使用protoc命令生成.pb.go文件时,我将遇到以下错误

microservice/internal/proto-files/domain/repository.proto: File not found.

解决方法

首先,您的导入路径最好像这样:

import "domain/repository.proto";

您必须将原始文件的路径添加到Goland。为此,您必须转到setting> Languages & Frameworks> Protocol Buffers,然后取消选中Configure automatically

然后在导入路径上添加此路径。

microservice/internal/proto-files
,

我也有同样的问题;当我使用“导入 domail/file-name.proto”语句时,IDE 给了我错误消息: Cannot resolve import 'domain/file-name.proto"

最后我发现了我的问题:父文件夹没有被标记为“Resources Root”,所以我标记了它并解决了我的问题。

ide with the problem

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。