13
Golang从入门到进阶系列:Go Modules机制
source link: https://studygolang.com/articles/28787
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Go Modules
机制是 Go
官方的包管理机制,从 Go 1.11
开始作为 experiment feature
引入, GO111MODULE
是这个特性的开关。
GO111MODULE
GO111MODULE
有三个值: auto
、 on
和 off
,默认值为 auto
, GO111MODULE
的值会影响 Go compiler
的依赖管理模式
-
off:
go compiler
会始终使用GOPATH mode
,无论要构建的源码目录是否在GOPATH
路径下,go compiler
都会在传统GOPATH
和vendor
目录下,搜索目标程序依赖的go package
-
on:
go compiler
会始终使用module-aware mode
,无论要构建的源码是否位于GOPATH
路径下,go compiler
都会在go mod
命令的缓存目录$GOPATH/pkg/mod
下搜索对应版本的依赖package
-
auto:使用
GOPATH mode
还是module-aware mode
,取决于要构建的源码目录是否位于$GOPATH/src
为根的目录体系下,且是否包含go.mod
文件
go mod
命令
golang
使用 go mod
命令来实现包的管理
go mod
命令说明:
go mod
命令使用:
-
执行命令
go mod init
,会在当前目录下生成一个go.mod
文件。执行这条命令之前,但其那目录如果已经存在go.mod
文件,需要先删除 -
如果生成的
go mod
文件不完整,则继续执行go mod tidy
命令,它会添加缺失的模块以及移除不需要的模块,执行后会生成go.sum
文件 -
执行
go mod verify
来检查当前模块的依赖是否全部都下载完毕,以及下载之后是否被修改,如果依赖没有问题,则会打印all modules verified
-
执行命令
go mod vendor
生成vendor
目录,该目录下存放的是go.mod
文件描述的依赖包,以及一个modules.txt
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK