无法解析 .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.


慕村9548890
浏览 299回答 2
2回答

拉风的咖菲猫

首先,您的导入路径最好是这样的:import "domain/repository.proto";您必须将 proto 文件的路径添加到 Goland。为此,您必须转到setting> Languages & Frameworks>Protocol Buffers然后取消选中Configure automatically。之后在导入路径上添加此路径。microservice/internal/proto-files像这样 :

达令说

我也有同样的问题; 当我使用“implort domail/file-name.proto”语句时,IDE 会给我错误消息: Cannot resolve import 'domain/file-name.proto"最后我发现了我的问题:父文件夹没有标记为“Resources Root”,所以我标记了它并解决了我的问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go