Go 程序通常由很多来源不同的包构成,每个包都从GOPATH或标准库中导入。为了项目可以正常使用这些包,我们可能需要这么做:
虽然项目间会有略微不同,但大方向上是这样的。
这里最大的问题是每个项目依赖的包都不同,还有些其他问题,例如:
Go 1.5发布了一个新的发现包的方法,不需要在代码或编译器中做任何修改。如果项目中包含一个叫vendor的目录,go将会从这个目录搜索依赖的包,这些包会在标准库之前被找到。
Go 1.5 开启这个功能需要修改环境变量 GO15VENDOREXPERIMENT=1, 1.6之后默认已开启。
看下目录结构
使用方式有很多种,大多是第三方软件,常用的有godep、glide。官方也有dep,但目前使用起来比较复杂且不稳定。建议使用glide
Glide是一个支持vendor特性的工具,使用简单、功能强大。
在项目下执行 glide init
过程中会出现类似情况,按提示操作即可
初始化后会在项目下创建一个glide.yaml文件,记录了项目中依赖包的详细信息。
glide install
这个命令会把项目中所有依赖的包都安装到vendor目录下。
当项目中需要新增其他依赖包,可以这样做 glide get github.com/foo/bar