当前位置: > > > > 如何导入导入包的供应商包
来源:stackoverflow
2024-04-22 11:18:32
0浏览
收藏
今日不肯埋头,明日何以抬头!每日一句努力自己的话哈哈~哈喽,今天我将给大家带来一篇《如何导入导入包的供应商包》,主要内容是讲解等等,感兴趣的朋友可以收藏或者有更好的建议在评论提出,我都会认真看的!大家一起进步,一起学习!
问题内容
我正在使用 etcd 的 wal 包(https://godoc.org/github.com/coreos/etcd/wal)来进行预写日志记录。 wal 的供应商软件包中有 go.uber.org/zap
。在wal的创建函数func create(lg *zap.logger, dirpath string,metadata []byte) (*wal, error)
中,我需要传入zap.logger
。
我尝试导入 go.uber.org/zap
但当我传入 zap.logger
时,编译器抱怨“类型不匹配”。
package main import ( "github.com/coreos/etcd/wal" ) func check(e error) { if e != nil { panic(e) } } func main() { metadata := []byte{} w, err := wal.Create(zap.NewExample(), "/tmp/hello", metadata) // err := w.Save(s, ents) }
我应该如何在我的项目中使用 zap.logger
?
解决方案
看来 github.com/coreos/etcd/wal
包不适合在 etcd 项目之外使用。如果您确实需要使用它,请按照以下步骤操作。
-
将以下代码放入
$gopath/src/yourpackage/main.go
文件中。package main import ( "fmt" "go.etcd.io/etcd/wal" "go.uber.org/zap" ) func main() { metadata := []byte{} w, err := wal.Create(zap.NewExample(), "/tmp/hello", metadata) fmt.Println(w, err) }
-
mkdir $gopath/src/yourpackage/vendor
cp -r $gopath/src/go.etcd.io $gopath/src/yourpackage/vendor/
mv $gopath/src/yourpackage/vendor/go.etcd.io/etcd/vendor/go.uber.org $gopath/src/yourpackage/vendor/
go 构建你的包
文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《如何导入导入包的供应商包》文章吧,也可关注公众号了解相关技术文章。