我想将工作中的项目转换为模块。我的理解是,这将使部署变得容易得多,因为不必正确设置$ GOPATH。
在我现有的项目中,我运行go mod init <project path>
,并签入go.mod
和go.sum
。作为测试,我打开了一个新终端unset GOPATH
,将我的项目克隆到/ tmp go build
中,虽然一切正常,但仍然给我带来了问题。我希望导入文件可以下载到供应商文件夹中,但是什么也不会下载。
在未设置$ GOPATH的情况下,go模块将其必须存放的软件包放在哪里?
答案 0 :(得分:3)
来自modules help:
使用模块时,GOPATH不再用于解析导入。但是,它仍然用于存储下载的源代码(在GOPATH / pkg / mod中)和编译的命令(在GOPATH / bin中)。
因此,在您的情况下,如果未设置GOPATH,它将使用默认的GOPATH($HOME/go/
),从而将缓存的导入存储在:$HOME/go/pkg/mod