美文网首页Golang
使用govendor管理包依赖

使用govendor管理包依赖

作者: 星落纷纷 | 来源:发表于2019-05-07 04:42 被阅读0次
    本文无关(Go1.11后推荐使用Go mod管理包依赖,不建议再使用vendor和GOPATH)
    

    Go的vendor目录有什么用?

    GOPATHGOROOT 一样,用来查找包依赖,工程会优先使用vendor目录下的包。优先级:
    vendor > 更上级目录的vendor > GOPATH/src > GOROOT/src

    当多个工程用到不同版本的同一个包时,会有冲突,vendor目录用于管理当前工程用到的依赖包的版本,避免和其它工程冲突

    使用govendor插件管理包依赖

    安装govendor

    go get -u github.com/kardianos/govendor
    

    注意:安装后govendor可执行文件将生成在第一个GOPATH/bin目录下

    初始化

    cd [your dir]
    
    govendor init
    

    将在your dir目录下生成vendor目录和vendor/vendor.json文件
    你可以配置vendor.json文件,比如编辑“ignore”字段来忽略掉某些目录下的包(这些包将不会加到vendor目录下),例如

    {
        "comment": "",
        "ignore": "test github.com/xxx/",
        "package": [],
        "rootPath": "github.com/fenfenbingo/bingosession"
    }
    

    这里将test包github.com/xxx/目录下的所有包忽略。注意,如果改成"github.com/xxx"则只有"github.com/xxx"包被忽略。

    从GOPATH添加依赖包到vendor目录

    govendor add +e
    

    然后发现vendor.json文件里多了依赖包的信息,vendor目录下多了依赖包。

    将依赖同步给其它项目人员

    我们这里只提交vendor.json文件,在.gitignore文件添加

    /vendor/*
    !/vendor/vendor.json
    

    其它项目人员拉取vendor.json文件后

    govendor sync
    

    如此会从远程仓库拉取vendor.json中记录对应版本的依赖库文件

    更多命令请参考govendor官方文档

    相关文章

      网友评论

        本文标题:使用govendor管理包依赖

        本文链接:https://www.haomeiwen.com/subject/nxhsoqtx.html