# Go 依赖管理

# 一. GOPATH

GOPATH 管理依赖的模式是将所有的依赖都保存在指定的目录下。

提示

默认路径在 ~/go(unix, linux), %USERPROFILE%\go(windows)

# 二. GOVENDOR

GOVENDOR 管理依赖的模式是在每一个项目下创建一个 vendor 目录,这样就解决了不用项目依赖不同版本库的问题。

提示

大量第三方依赖管理工具: glide, dep, go dep, ...

# 三. go mod 的使用

go mod 会把依赖保存在 GOPATH/mod/xxx 中

  • 初始化 go mod
go mod init
  • 安装 go 依赖
go get -u xxx
  • 清除不需要的依赖
// 假如依赖了v1.1版本的,但是后来升级到v1.2,这时在go mod中会产生不需要引用得依赖,相当于前端的 uninstall
go mod tidy

# 四. 迁移 go mod

# 初识化gomod
go mod init myapp

# 拉所以的库
go build ./...

# 删除 vender 以及相关工具配置
rm -rf vender glide.yaml

go mod 的好处

由 go 命令统一的管理,用户不必关心目录结构

# 五. 目录的管理

go 同一个文件夹下,只能有一个 main 函数, 所以多个 go 文件需要分别在不同的文件夹下

  • 将所有文件夹下的 go 文件都 build 一下, 只检查,不会生成二进制文件
go build ./...
  • 编译并生成二进制文件
go install ./...

go env GOPATH

# 找到 GOPATH ,然后二进制文件生成在 GOPATH/bin 目录下