go get command downloads the latest version of dependencies from the master branch of the Go repository. In some cases, this approach does not work. For example, when you have two projects that depend on different versions of a third-party library. With Go modules (formerly known as vgo), you can download and import the necessary library versions per project. Read more about Go modules at blog.golang.org.
Create a project with integration of Go modules
In the New Project page, select Go modules.
In the Location field, specify the path where you want to store your project.
In the GOROOT field, specify the location of your Go installation. Usually, the location is defined automatically.
To change or install a new version of Go SDK, click the Add SDK button and select Local to choose the Go SDK version on your hard drive, or select Download to download Go SDK from the official repository. For more information about installing Go SDK, see Installing Go SDK.
From the Vgo Executable list, select the executable that you want to use with Go modules.
In the Environment field, specify all the necessary environment variables. For example, the
GOPROXYenvironment variable. Read more about environment variables in the Environment variables section.
(Optional) To use vendoring mode, select the Vendoring mode checkbox. For more information about vendoring, see Vendoring.
Working with Go modules
In the Project tool window ( ), Go modules are displayed with their full import path. The version of each Go Module is shown in a muted font color to help you distinguish between them.
Fetch dependencies with Go modules
You can fetch missed dependencies and remove unused dependencies.
In the Project tool window ( ), double-click the MOD file.
Click the dependency declaration.
Press Alt+Enter and select Sync dependencies of <project_name>.
Enable Go modules in a project
A new Go modules project already has Go modules enabled. If you pulled your Go modules project from Github, you need to enable Go modules manually.
Open settings by pressing Ctrl+Alt+S and navigate to.
Select the Enable Go modules integration checkbox and ensure that the Vgo Executable field points to a valid Project SDK directory.
Create a diagram of dependencies
The go.mod file lists dependencies for your project. You can use this file to build a diagram of dependencies.
Before you begin, ensure that your project is under GOROOT.
Enable Go modules in your project.
Right-click the go.mod file in your project and select .
Enable vendoring mode
You can toggle vendoring mode only in Go versions 1.13 and earlier. In Go 1.14 RC, automatic vendoring mode became a built-in Go feature.
Open settings by pressing Ctrl+Alt+S of the Go modules project, navigate to.
Select the Enable vendoring support automatically checkbox and click OK.
Navigate from a dependency import path to package source files
In the Project tool window ( ), double-click the
Click a dependency import path and clickCtrl+B.
Environment variables provide a way to set application execution parameters. Environment variables can store addresses of proxy servers that you want to use to download dependencies (GOPROXY), names of packages that are considered private (GOPRIVATE), and other values. In GoLand, you can use the following templates for environment variables:
GOPROXY: defines proxy servers that must be used to download dependencies. These proxy servers are used when you trigger the go command. Read more about GOPROXY in Module downloading and verification at golang.org.
GOSUMDB: identifies the name of the checksum database. The checksum database verifies that your packages from the
go.sumfile are trusted. Read more about GOSUMDB in Module authentication failures at golang.org.
GOPRIVATE: lists packages that are considered private. The go command does not use the GOPRIVATE or checksum database when downloading and validating these packages. Read more about GOPRIVATE in Module configuration for non-public modules at golang.org.
GONOPROXY: lists packages that are considered private. The go command does not use the proxy when downloading these packages. GONOPROXY overrides GOPRIVATE.
GONOSUMDB: lists packages that are considered private. The go command does not use the checksum database during validation of these packages. Overrides GOPRIVATE.
Other: any environment variable that you want to introduce. For example, you can introduce the
GOMODCACHEenvironment variable that changes the default location of the Go modules cache from $GOPATH/pkg/mod to a user-defined location (for example,
Introduce an environment variable in a project
When you create a new project, click Go Modules in the New Project window.
For existing projects, open settings by pressing Ctrl+Alt+S and navigate to.
In the Environment field, click the Browse icon at the end of the field.
In the Environment variables window, click the Add button () and select the template that you want to add.
Get information about environment variable template
In the Environment variables window, click the Explain variable button ().
Installing Go SDK
Select a local copy of the Go SDK
Ensure that the provided path to the folder with Go SDK includes bin and src folders.
In the New Project dialog, select Go modules.
Click the Add SDK button and select Local.
In the file browser, navigate to the SDK version that is on your hard drive.
Download the Go SDK
In the New Project dialog, select Go modules.
Click the Add SDK button select Download.
From the Version list, select the SDK version.
In the Location field, specify the path for the SDK. To use a file browser, click the Browse icon .
Notify about replacements of local paths in go.mod file
Before you commit your changes, GoLand can show you a notification that you replaced local paths in the go.mod file. This might help you to avoid situations when these replacements are committed by mistake.
In the Commit tool window Alt+0, click the Show Commit Options icon () and select the Perform code analysis checkbox.