go - Go protobuf 包冲突
问题描述
您好我正在尝试用 Go 语言生成简单的 protobuf 文件
syntax = "proto3";
package gen;
message EvtKeepAlive
{
string SvcName = 2;
}
在标题中,我看到该包使用了两种不同的 proto go 实现,一种来自github.com,另一种来自google.golang.org。据我了解,后者取代了前者,那么这个文件生成是否有效?
// versions:
// protoc-gen-go v1.25.0-devel
// protoc v3.13.0
// source: common.proto
package gen
import (
proto "github.com/golang/protobuf/proto"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
解决方案
文件有效;请参阅 dsnet对此问题的评论:
新生成的 .pb.go 文件依赖于已弃用的 proto 包的唯一原因是对旧包的足够新版本强制执行弱依赖。这是必要的,因为不是每个人都在使用 Go 模块,因此 Go 工具链会强制执行此依赖约束。我不喜欢添加它,但我认为至少保留几个月可能是必要的。
推荐阅读
- python - 如何在 EC2 的公共 IP 上运行 Flask?
- amazon-web-services - 尝试在 AWS 上的同一存储桶中将文件从一个路径复制到另一个路径时被拒绝访问
- security - 无法攻击 Tpot 虚拟实例
- javascript - 如何将“如果数据数组中的第三个元素不为空,则显示表格;如果不是,则返回空白”转换为 Google Apps Script Javascript?
- woocommerce - 将结帐页面的 woocommerce 通知移动到“before_cart”
- python - 获取无类型和无效文字错误
- c# - 带有繁忙等待/CPU绑定代码的等待异步链的末尾应该是什么?
- javascript - 有没有办法选择点击事件附近的元素?
- javascript - Google Maps LatLng 的 Typescript 类型问题{}
- linux - No such file or directory in shell redhat