1 Init gomod in your project
inside your project directory do
go mod init git.yourrepo.com/group/mygoproject
if you don’t use git just replace
2 Update your dependencies
go get -u ./...
This will get all your dependencies and store them in your
go.mod file, which you created earlier. This ill also create a
3 Add your go.sum and go.mod files to your git repo
This will ensure that everyone who clones your project will end up with the same dependencies.
4 Optional: Vendoring
If you want to be able to build your project offline or you think the source of a library will be removed in the future, you can use
go mod to download all dependencies in a folder called
vendor in your project’s root.
You can add the
vendor directory to
git, although it will bloat your repo.
go mod does not use vendoring, you have to run
go build -mod vendor
Keep in mind that vendoring is not an ideal solution and you may want to use a proxy cache instead.
If you just want versioning of your dependencies but keep your files in your GOPATH you have to set
GO111MODULES=on in your environment variables.