登录
首页 >  Golang >  Go问答

如何导入导入包的供应商包

来源:stackoverflow

时间:2024-04-22 11:18:32 354浏览 收藏

今日不肯埋头,明日何以抬头!每日一句努力自己的话哈哈~哈喽,今天我将给大家带来一篇《如何导入导入包的供应商包》,主要内容是讲解等等,感兴趣的朋友可以收藏或者有更好的建议在评论提出,我都会认真看的!大家一起进步,一起学习!

问题内容

我正在使用 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 项目之外使用。如果您确实需要使用它,请按照以下步骤操作。

  1. 将以下代码放入 $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)
    }
  2. mkdir $gopath/src/yourpackage/vendor

  3. cp -r $gopath/src/go.etcd.io $gopath/src/yourpackage/vendor/
  4. mv $gopath/src/yourpackage/vendor/go.etcd.io/etcd/vendor/go.uber.org $gopath/src/yourpackage/vendor/
  5. go 构建你的包

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《如何导入导入包的供应商包》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>