Appearance
包管理工具
- 一个模块是 Go packages 的集合,定义在项目根目录下的 go.mod 文件。
- go.mod 文件定义了模块的路径,这也是使用当前项目中包的导入路径。
- go.mod 文件还定义了模块的依赖项,这些是项目成功构建所需的其他模块。
go mod
- go 官方管理包工具
- 使用 go mod 必须设置 GO111MODULE=on
bash
go env -w GO111MODULE=on镜像源
- 国内下载慢需要换源
bash
# 官方
go env -w GOPROXY=https://goproxy.io,direct
# 阿里云
go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/,direct
# 腾讯
go env -w GOPROXY=https://goproxy.tencent.com,direct常规命令
bash
go mod init #初始化当前文件夹, 创建go.mod文件
go mod tidy #增加缺少的module,删除无用的module
go mod vendor #将依赖复制到vendor下
go mod download #下载依赖的module到本地cache(默认为$GOPATH/pkg/mod目录)
go mod edit #编辑go.mod文件
go mod graph #打印模块依赖图
go mod verify #校验依赖
go mod why #解释为什么需要依赖go get
- 下载项目依赖
- 会更新 go.mod/go.sum 文件
go install
- 下载二进制工具
- 会编译并安装可执行文件到 $GOPATH/bin 目录
- 不会更新 go.mod/go.sum 文件
go get 对比 go install
| 特性 | go get | go install |
|---|---|---|
| 主要功能 | 管理项目依赖 | 编译并安装可执行文件 |
| 依赖处理 | 会更新 go.mod/go.sum | 不影响项目依赖 |
| 安装目录 | $GOPATH/pkg | $GOPATH/bin |
| 输出结果 | 下载的源代码 | 可执行文件 |
| 常用场景 | 例如:使用 gorm 包 | 例如:使用 gf 脚手架 |
更新依赖
- 下载最新的依赖
- 会更新 go.mod/go.sum 文件
bash
# 更新所有依赖
go get -u