go vendor目录
参考 https://blog.csdn.net/u010649766/article/details/80327035
那么查找依赖包路径的解决方案如下:
- 当前包下的vendor目录。
- 向上级目录查找,直到找到src下的vendor目录。
- 在GOPATH下面查找依赖包。
- 在GOROOT目录下查找
一些建议
在使用vendor中,给出如下建议:
- 一个库工程(不包含main的package)不应该在自己的版本控制中存储外部的包在vendor目录中,除非他们有特殊原因并且知道为什么要这么做。
- 在一个应用中,(包含main的package),建议只有一个vendor目录在代码库一级目录。
上面建议的原因如下:
- 在目录结构中的每个包的实例,即使是同一个包的同一个版本,都会打到最终的二进制文件中,如果每个人都单独的存储自己的依赖包,会迅速导致生成文件的二进制爆发(binary bloat)
- 在一个目录的某个pacage类型,并不兼容在同一个package但是在不同目录的类型,即便是同一个版本的package,那意味着loggers,数据库连接,和其他共享的实例都没法工作。