Go语言模块管理:GO111MODULE的含义

发布时间 2023-10-12 21:16:09作者: shui00cc

在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。这样可以更好地管理依赖、避免包冲突,并支持版本管理等功能。