Go 包管理

Go 包管理

简单说说 Go 包管理工具的发展历史?

  • Go 1.4 及之前
    • 所有的依赖包都是存放在 GOPATH 下,没有版本控制
  • Go 1.5Go 1.10
    • 每个项目的根目录下可以有一个 vendor 目录,里面存放了该项目的依赖的包
  • Go 1.11Go 1.12
    • 默认使用的还是 GOPATH 的管理方式
    • 运行 export GO111MODULE=on,使用 Go Modules
  • Go 1.13 及之后
    • 默认使用 Go Modules

你用过哪些 Go 包管理工具,说说它们的优缺点?


Go Mod 相对之前的版本管理有哪些优点?

  • 可以指定版本

Go Mod 如何找到引用的包?

一般情况:

查看 $GOPATH/pkg/mod/

设置 go mod vendor,使用 go build -mod=vendor 来构建项目时:


参考