加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

使用protobuf生成代码import包找不到

发布时间:2021-07-06 06:16:26 所属栏目:大数据 来源: https://www.jb51.cc
导读:protobuf使用import导入包找不到 前言 解决方案 protobuf使用import导入包找不到 前言 使用 protobuf 生成go代码,发现 protobuf 中一个import引用找不到 protobuf代码 Syntax = "proto3";package main;import "github.com/mwitkow/go-proto-validators/vali
  • protobuf使用import导入包找不到
    • 前言
    • 解决方案

protobuf使用import导入包找不到

前言

使用protobuf生成go代码,发现protobuf中一个import引用找不到

protobuf代码

Syntax = "proto3";

package main;

import "github.com/mwitkow/go-proto-validators/validator.proto";

message Message {
    string important_string = 1 [
        (validator.field) = {regex: "^[a-z]{2,5}$"}
    ];
    int32 age = 2 [
        (validator.field) = {int_gt: 0,int_lt: 100}
    ];
}

生成的时候报错

$ protoc --govalidators_out=. --go_out=plugins=grpc:. hello.proto
github.com/mwitkow/go-proto-validators/validator.proto: File not found.
hello.proto:5:1: Import "github.com/mwitkow/go-proto-validators/validator.proto" was not found or had errors.

解决方案

我们要弄明白protoc中proto_path参数的含义

  • proto_path: 指定了在哪个目录中搜索import中导入的和要编译为.go的proto文件,可以定义多个

所以添加proto_path就可以了,指定两个地址,一个是import的地址,一个是要编译为.go的proto文件的地址

$ protoc --proto_path=. --proto_path=${GOPATH}/src --govalidators_out=. --go_out=plugins=grpc:. hello.proto

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读