-
Notifications
You must be signed in to change notification settings - Fork 3
dependencies manage
cym edited this page Jan 15, 2018
·
1 revision
采用一个公共$GOPATH
,在 $GOPATH/src/
下放不同的项目:
| - $GOPATH
| - bin
| - pkg
| - src
| - [project-name1]
| - main.go
| - [project-name1]
| - main.go
使用 gvm 进行不同 Go 版本的管理
-
gvm 的安装,安装到
bash
或zsh
:$ bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
-
使用:
# 安装某版本的 go $ gvm install go1.4 # 使用某版本的 go $ gvm use go1.4 [--default] # 查看本机的 go 版本 $ gvm list
-
使用 dep 来管理依赖包
| - $GOPATH | - bin | - ... | - pkg | - ... | - src | - [project-name1] | - Gopkg.lock | - Gopkg.toml | - main.go | - vendor | - github.com | - ... | - gopkg.in | - ... | - ... | - ...
-
安装
dep
:$ brew install dep
-
dep
需要在$GOPATH/src[/project-name]
下使用 -
初始化命令:
$ dep init
自动分析并下载依赖,生成三个文件.
Gopkg.toml
可以通过命令生产,也可以被用户根据 需要手动修改,Gopkg.lock
是自动生成的,不可以修改。| - vendor #用来存放依赖包的目录 | - Gopkg.lock #描述用户的意图,包括依赖的 source、branch、version等。 | - Gopkg.toml #仅仅描述依赖的具体状态。例如各依赖的revision。
-
根据
Gopkg.toml
和Gopkg.lock
中的数据构建vendor目录和同步里面的包:$ dep ensure
-
查看当前的依赖情况:
$ dep status PROJECT CONSTRAINT VERSION REVISION LATEST PKGS USED github.com/beego/mux branch master branch master 626af65 626af65 1 go.uber.org/atomic * v1.2.0 4e33664 4e33664 1 go.uber.org/zap ^1.4.0 v1.4.0 fab4530 fab4530 7