学习go module

当你准备使用go module时,通常面临如下其中一种情况

  • 全新的项目
  • 项目正在使用其他包管理工具
  • 项目没有使用包管理工具

解决策略

命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 初始化
$ go mod init <module_name>
# 增加缺少的依赖并删除没有使用的依赖
$ go mod tidy
# 将依赖包复制到vendor目录中
# go mod vendor
# 更新指定包至指定版本
$ go get github.com/broken/module@v1.1.0
# 升级到最新的次要版本或修订版本(x.y.z,y是次要版本,z是修订版本)
$ go get -u
# 升级到最新的修订版本
$ go get -u=patch

通过go mod下载的依赖在$GOPAH/pkg/mod
运行go get后,go.mod文件也会相应更改

使用replace替换无法直接获取的pakcage

1
2
3
replace (
golang.org/x/crypto v0.0.0-20190313024323-a1f597ede03a => github.com/golang/crypto v0.0.0-20190313024323-a1f597ede03a
)

参考

go mod 使用

https://juejin.im/post/5c8e503a6fb9a070d878184a