golang:github.com/mwitkow/go-proto-validators/validator.proto 文件在GoLand中不识别

练习《Go语言高级编程》中4.6.1验证器的案例时,代码如下:

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}];
}

发现导入的validator.proto文件不识别,并且双引号内容红色。

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

执行案例中命令,

protoc 
    --proto_path=${GOPATH}/src 
    --proto_path=${GOPATH}/src/github.com/google/protobuf/src 
    --proto_path=. 
    --govalidators_out=. --go_out=plugins=grpc:. helloworld.proto

提示错误信息:

E:\workspace_go\gotest\src\main\chapter04\th03\validators>protoc --proto_path=${GOPATH}/src --proto_path=${GOPATH}/src/github.com/google/protobuf/src --proto_path=. --govalidators_out=. --go_out=plugins=grp
c:. helloworld.proto
${GOPATH}/src: warning: directory does not exist.
${GOPATH}/src/github.com/google/protobuf/src: warning: directory does not exist.
github.com/mwitkow/go-proto-validators/validator.proto: File not found.
helloworld.proto:5:1: Import "github.com/mwitkow/go-proto-validators/validator.proto" was not found or had errors.

首先此次执行有两处问题,一处由于没有仔细看文档提示,犯了低级错误,提示如下:

在 windows 系统中需要替换 ${GOPATH} 为 %GOPATH% 

另外一处,由于网络原因使用 go get / git clone 命令没有下载下来,直接下载zip包,进行解压到 %GOPATH%/src/github.com/mwitkow 下面,部分插件未下载。需要执行 go mod 命令,外执行过后,还提示“github.com/mwitkow/go-proto-validators/validator.proto: File not found.”,打开“github.com/mwitkow/go-proto-validators/validator.proto”文件,代码如下:

引入了“google/protobuf/descriptor.proto”文件,此文件需要将“ https://github.com/protocolbuffers/protobuf/” 中的 src/google 文件夹移动到 %GOPATH%/src/google/下面,移动过后,直接执行命令就可以了。

总结如下:

1.执行 go mod 命令

2.将“ https://github.com/protocolbuffers/protobuf/” 中的 src/google 文件夹移动到 %GOPATH%/src/google/下面

3.正确执行命令

protoc 
    --proto_path=%GOPATH%/src 
    --proto_path=%GOPATH%/src/github.com/google/protobuf/src 
    --proto_path=. --govalidators_out=. --go_out=plugins=grpc:. helloworld.proto


 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值