在 2019 年刚接触 Go 的时候,项目中包的引入是采用go get
下载到src
目录的方式。此时依赖包与项目处于同级目录。
今年来到新公司,主要从事 Go 的开发,项目的包管理采用 go mod
的方式,也是比较新的版本才提供的官方包管理机制,大致做一下使用方法记录。
在项目根目录创建go.mod
文件:
1 | go mod init [模块名] |
require
引入依赖包:
1 | module blockchain |
后面可以标明包的版本,可以是标签或者分支名。
执行go mod tidy
后会拉取依赖包或清除不再使用的依赖包,存放的目录在$GOPATH/pkg/mod/
,同一个包可以存在多个版本。
如果希望将项目的依赖包纳入版本控制,可以执行go mod vendor
,在项目根目录下生成vendor
目录并存放依赖包。
如果后续需要替换依赖包,可以使用replace
关键字:
1 | module blockchain |
使用 Goland 时,需要在偏好设置中开启 Go Module 设置,否则程序虽然可以正常运行,但是 IDE 中导入的包依然会显示为错误的红色: