###########################

golang版本:1.5

环境变量:

GOROOT=

GOPATH=

PATH=

GO15VENDOREXPERIMENT=1     #在go1.5版本后必须配置

 

 

最开始的时候,Go 并没有提供较为妥当的包管理工具。从 1.5 版本开始提供了 vendor 特性,但需要手动设置环境变量 GO15VENDOREXPERIMENT=1。

在执行 go build 或 go run 命令时,会按照以下顺序去查找包:

当前包下的 vendor 目录
向上级目录查找,直到找到 src 下的 vendor 目录
在 GOROOT 目录下查找
在 GOPATH 下面查找依赖包
在发布 1.6 版本时,该环境变量的值已经默认设置为 1 了,该值可以使用 go env 命令查看。

在发布 1.7 版本时,已去掉该环境变量,默认开启 vendor 特性。

 

vendor 使用建议
一个库工程(不包含 main 的 package)不应该在自己的版本控制中存储外部的包在 vendor 目录中,除非有特殊原因并且知道为什么要这么做。
在一个应用中,(包含 main 的 package),建议只有一个 vendor 目录,且在代码库一级目录。
govendor 简介
govendor 是一个基于 vendor 目录机制的包管理工具。

支持从项目源码中分析出依赖的包,并从 $GOPATH 复制到项目的 vendor 目录下
支持包的指定版本,并用 vendor/vendor.json 进行包和版本管理,这点与 PHP 的 Composer 类似
支持用 govendor add/update 命令从 $GOPATH 中复制依赖包
如果忽略了 vendor/*/ 文件,可用 govendor sync 恢复依赖包
可直接用 govendor fetch 添加或更新依赖包
可用 govendor migrate 从其他 vendor 包管理工具中一键迁移到 govendor
支持 Linux,macOS,Windows,甚至现有所有操作系统
支持 Git、Hg、SVN,BZR(必须指定一个路径)

 

 

 

 

 

 

 

 

 

 

 

 

######################