golang 官方并没有推荐最佳的包管理方案。到了1.5版本时代,官方引入包管理的设计,加了 vendor 目录来支持本地包管理依赖。
官方 wiki 推荐了多种支持这种特性的包管理工具,如:godep、gv、gvt、glide、govendor等。
即使使用vendor,也必须在gopath中。 (推荐学习:go)
查找依赖包路径的顺序
当前包下的vendor目录。
向上级目录查找,直到找到src下的vendor目录。
在gopath下面查找依赖包。
在goroot目录下查找
包管理工具govendor
需要把 $gopath/bin/ 加到 path 中。
安装
go get -u github.com/kardianos/govendor
命令
init 创建 vendor 文件夹和 vendor.json 文件list 列出已经存在的依赖包add 从 $gopath 中添加依赖包,会加到 vendor.jsonupdate 从 $gopath 升级依赖包remove 从 vendor 文件夹删除依赖status 列出本地丢失的、过期的和修改的packagefetch 从远端库增加新的,或者更新 vendor 文件中的依赖包sync pull packages into vendor folder from remote repository with revisionsmigrate move packages from a legacy tool to the vendor folder with metadata.get 类似 go get,但是会把依赖包拷贝到 vendor 目录license list discovered licenses for the given status or import paths.shell run a "shell" to make multiple sub-commands more efficient for large projects.go tool commands that are wrapped: `+<status>` package selection may be used with them fmt, build, install, clean, test, vet, generate, tool
以上就是golang中vendor什么时候进来的的详细内容。