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

时间:2019-01-02 06:10:27

标签: go

我正在使用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

1 个答案:

答案 0 :(得分:2)

似乎软件包AppBarConfiguration config = new AppBarConfiguration.Builder(R.id.navigation_main, R.id.fragment_main_screen).build(); 并不打算在etcd项目之外使用。如果您确实需要使用它,请按照以下步骤操作。

  1. 将以下代码放入github.com/coreos/etcd/wal文件中。

    $GOPATH/src/yourpackage/main.go
  2. 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) }

  3. mkdir $GOPATH/src/yourpackage/vendor
  4. cp -r $GOPATH/src/go.etcd.io $GOPATH/src/yourpackage/vendor/
  5. mv $GOPATH/src/yourpackage/vendor/go.etcd.io/etcd/vendor/go.uber.org $GOPATH/src/yourpackage/vendor/