我正在尝试将工作中的项目转换为模块。我的理解是,它应该使部署变得更加容易,因为不必正确设置 $GOPATH。
在我现有的项目中,我运行了 go mod init <project path>
,并 checkin go.mod
和go.sum
。作为测试,我打开了一个新终端,unset GOPATH
,将我的项目克隆到/tmp,go build
,一切都很顺利,但它给我留下了疑问。我希望我的导入会被下载到 vendor 文件夹中,但什么也没有。
go 模块将它所需要的包放在哪里 go get
当没有设置 $GOPATH 时?
最佳答案
来自modules help :
When using modules, GOPATH is no longer used for resolving imports. However, it is still used to store downloaded source code (in GOPATH/pkg/mod) and compiled commands (in GOPATH/bin).
因此,在您的情况下,如果未设置 GOPATH,它将使用默认的 GOPATH ($HOME/go/
),从而将缓存的导入存储在:$HOME/go/pkg/mod
关于go - 当使用没有设置 GOPATH 的模块时,go 将导入放在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52768616/