Go语言模块管理:GO111MODULE的含义
在cmd中使用 go env 命令可以查看到我们的GOPATH环境变量。
其目录结构为:
- bin:存放代码编译后的二进制文件
- pkg:存放编译后的库文件
- src:存放自己编写的Go语言代码文件
在Go1.11后新增了modules特性,模块是相关Go包的集合。如果在cmd中执行以下命令将GO111MODULE变量的值设为on:
go env -w GO111MODULE=on
Go将会使用模块查找依赖包的方法(go.mod),而不会在GOPATH目录下查找。代码文件也就可以放置在GOPATH/src外的任何目录下。
另外,设置GO111MODULE=auto 能够根据当前目录是否在GOPATH/src之外、是否包含go.mod文件来决定是否使用模块化管理。
建议在使用Go 1.16及以上版本时,尽量使用Go模块进行包管理,将代码文件放置在任意目录下,而不是依赖于GOPATH。这样可以更好地管理依赖、避免包冲突,并支持版本管理等功能。