单独下载了etcd的所有依赖时,通过go build编译etcd的示例时,居然还报错:..\go.etcd.io\etcd\client\v3\example_auth_test.go:1:1: expected 'package', found '.'。
有点懵了,在网上查找解解决方案,但是都没有这种报错。
不过,都说因为google.golang.org/grpc 1.26 后的版本是不支持 clientv3 的,也就是说要把这个改成 1.26 版本的就可以了。
那就在只能通过依赖管理进行处理了,众所周知,Go 在做依赖管理时会创建两个文件:go.mod和go.sum。
那就先生成go.mod文件呗,在go build的文件下使用:go mod init生产go.mod文件,如下图所示。
然后,提示需要生成go.sum文件,如上图提示一下,使用go mod tidy命令即可。
所生成的文件如下图所示:
查看go.mod文件,
module studyGo/day8/etcd_test
go 1.17
require go.etcd.io/etcd/client/v3 v3.5.1
require (
github.com/coreos/go-semver v0.3.0 // indirect
github.com/coreos/go-systemd/v22 v22.3.2 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang/protobuf v1.5.2 // indirect
go.etcd.io/etcd/api/v3 v3.5.1 // indirect
go.etcd.io/etcd/client/pkg/v3 v3.5.1 // indirect
go.uber.org/atomic v1.7.0 // indirect
go.uber.org/multierr v1.6.0 // indirect
go.uber.org/zap v1.17.0 // indirect
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4 // indirect
golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40 // indirect
golang.org/x/text v0.3.5 // indirect
google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c // indirect
google.golang.org/grpc v1.38.0 // indirect
google.golang.org/protobuf v1.26.0 // indirect
)
结果,然后在go build一下,居然可以编译成功了,当然etcd也可以正常使用了,如下图所示:
貌似google.golang.org/grpc也不是1.26.0版本,可能这样将etcd对应的依赖的版本都匹配下载了才成功的吧。