Reputation: 24717
I'm toying around with converting a project at work to be a module. My understanding is it should make deploys much easier since $GOPATH won't have to be set up properly.
In my existing project I ran go mod init <project path>
, and checked in go.mod
and go.sum
. As a test, I opened a new terminal, unset GOPATH
, cloned my project into /tmp, go build
, and everything worked great but it left me with questions. I expected my imports to be downloaded into a vendor folder but nothing.
Where does go modules put the packages it has to go get
when no $GOPATH is set?
Upvotes: 2
Views: 178
Reputation: 2218
From the 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).
So in your case if GOPATH is unset it will use the default GOPATH ($HOME/go/
) and thereby store the cached imports in: $HOME/go/pkg/mod
Upvotes: 3