您的位置 首页 golang

Golang从入门到进阶系列:Go Modules机制

Go Modules机制是Go官方的包管理机制,从Go 1.11开始作为experiment feature引入,GO111MODULE是这个特性的开关。

GO111MODULE

GO111MODULE有三个值:autoonoff,默认值为autoGO111MODULE的值会影响Go compiler的依赖管理模式

  • off:go compiler会始终使用GOPATH mode,无论要构建的源码目录是否在GOPATH路径下,go compiler都会在传统GOPATHvendor目录下,搜索目标程序依赖的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命令说明:

命令说明
downloaddownload modules to local cache
editedit go.mod from tools or scripts
graphprint module requirement graph(打印模块依赖图)
initinitialize new module in current directory
tidyadd missing and remove unused module
vendormake vendored copy of dependencies
verifyverify dependencies have expected content
whyexplain why packages or modules are needed

go mod命令使用:

  1. 执行命令go mod init,会在当前目录下生成一个go.mod文件。执行这条命令之前,但其那目录如果已经存在go.mod文件,需要先删除
  2. 如果生成的go mod文件不完整,则继续执行go mod tidy命令,它会添加缺失的模块以及移除不需要的模块,执行后会生成go.sum文件
  3. 执行go mod verify来检查当前模块的依赖是否全部都下载完毕,以及下载之后是否被修改,如果依赖没有问题,则会打印all modules verified
  4. 执行命令go mod vendor生成vendor目录,该目录下存放的是go.mod文件描述的依赖包,以及一个modules.txt

go mod相关文件

执行命令go mod init以及go mod tidy之后,会生成两个文件,分别为:

  • go.mod:包含模块名称、go的版本、该模块的依赖信息
  • go.sum:模块所有依赖的校验和

文章来源:智云一二三科技

文章标题:Golang从入门到进阶系列:Go Modules机制

文章地址:https://www.zhihuclub.com/500.shtml

关于作者: 智云科技

热门文章

网站地图