When I run dep init
in project folder, the error occurs:
init failed: unable to detect the containing GOPATH: D:\projects\foo is not within a known GOPATH/src
My projects are located on another drive and not %GOPATH%/src
(i.e. %USERPROFILE%\go\src
).
It's a known error but it's unclear what is the solution.
How can I use dep
without moving Go projects to %GOPATH%/src
?
Go makes this choice so that there is nothing like a CLASSPATH (ie: Java) to deal with. You specify a $GOPATH that has a consistent src tree inside of it. If your repo makes references to particular git commits (rather than the ones checked out into $GOPATH/src/github.com/$githubUser/$githubProjectName), then those will be in the ./vendor directory of your project.
If you have a different Go project that uses a completely different set of checkouts, due to versioning issues, then you can have multiple $GOPATH values to deal with that.
How can I use dep without moving Go projects to %GOPATH%/src?
Not at all.
what does go env
command say your GOPATH is? Set GOPATH for your environment as per this doc
Go projects require that your project is within its path.. So first do a $ go env
to find out where that is. Lets say it says /home/turgut/go move the project that you downloaded that needs the dep to: /home/turgut/go/src/myproject then cd /home/turgut/go/src/myproject
and try the dep ensure
command now.