简介
Go modules
是随着 Go 1.11 发布的新型的包管理工具,这也是官方推荐的。有了go mod
,项目将不再依赖于GOPATH
,你可以在任何路径下创建和管理项目,但是下载的依赖包仍然会存储在$GOPATH/pkg/mod
路径。
使用
配置
在 Mac 下,编辑~/.bash_profile
文件,写入export Go111MODULE=on
初始化 Modules
在项目路径下,使用命令 go mod init <packagename>
初始化
编辑 go.mod
初始化的 go.mod 会显示如下内容:
1 | module packagename |
添加依赖后:
1 | module packagename |
如果你不知道要依赖的版本,可以使用 latest
代替版本号,在安装依赖时,go 会自动安装最新的版本。
go.mod 有四种指令:
- module:模块名称
- require:依赖包列表以及版本
- exclude:禁止依赖包列表(仅在当前模块为主模块时生效)
- replace:替换依赖包列表 (仅在当前模块为主模块时生效)
下载依赖包
执行go get
会下载指定的依赖包
其它命令:
go get -u
:更新至最新的版本go get v -u=patch
:只更新小的修订版本,例如从 v1.2.3 到 v1.2.4go get github/com/test/test@v1.2.3
:更新至指定版本
go mod vendor
go mod vendor
将会复制 modules 到项目的 vendor 文件下,貌似只会复制代码中引用的库,而不是 go.mod 中定义的全部 modules
go mod help
go mod help
会显示 go mod 命令帮助:
1 | download 下载依赖的module到本地cache |