我在玩弄把工作中的一个项目转换成一个模块。我的理解是,它应该使部署更加容易,因为$GOPATH不必正确设置。
在我现有的项目中 go mod init <project path> ,并签入 go.mod 和 go.sum . 作为测试,我打开了一个新的终端, unset GOPATH go build ,一切都很顺利,但这给我留下了疑问。我希望我的导入被下载到一个供应商文件夹,但什么也没有。
go mod init <project path>
go.mod
go.sum
unset GOPATH
go build
go get 当没有设置$GOPATH时?
go get
modules help :
使用模块时,GOPATH不再用于解析导入。但是,它仍然用于存储下载的源代码(在GOPATH/pkg/mod中)和编译的命令(在GOPATH/bin中)。
因此,在您的情况下,如果GOPATH未设置,它将使用默认的GOPATH( $HOME/go/ )从而将缓存的导入存储在: $HOME/go/pkg/mod
$HOME/go/
$HOME/go/pkg/mod