GOROOT and GOPATH
Go tools expect a certain layout of the source code. GOROOT and GOPATH are environment variables that define this layout.
GOROOT is a variable that defines where your Go SDK is located. You do not need to change this variable, unless you plan to use different Go versions.
GOPATH is a variable that defines the root of your workspace. By default, the workspace directory is a directory that is named go
within your user home directory (~/go for Linux and MacOS, %USERPROFILE%/go for Windows). GOPATH stores your code base and all the files that are necessary for your development. You can use another directory as your workspace by configuring GOPATH for different scopes. GOPATH is the root of your workspace and contains the following folders:
src/: location of Go source code (for example, .go, .c, .g, .s).
pkg/: location of compiled package code (for example, .a).
bin/: location of compiled executable programs built by Go.
Consider the following animation where we change the Go SDK from 1.16.1 to 1.16.3 and assign the project GOPATH to the newly-downloaded SDK directory.
GOROOT
Configure GOROOT
To see the current value of GOROOT, open settings (Ctrl+Alt+S) and navigate to
. Click the drop-down list and select the Go version.If no Go version is available, click the Add SDK button to download a Go version or select a path to a local copy of 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.
Open settings (Ctrl+Alt+S) and navigate to
.Click the Add SDK button and select Local.
In the file browser, navigate to the SDK version that is on your hard drive.
Click Open.
Download the Go SDK
Open settings (Ctrl+Alt+S) and navigate to
.Click the Add SDK button () and 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 .
Press OK to close the Download Go SDK dialog.
As you press Apply or OK on the GOROOT page, GoLand will start downloading and unpacking the Go SDK.
GOPATH
Configuring GOPATH for different scopes
You can configure GOPATH for the following scopes:
Global GOPATH: settings apply to all projects of a specific installation of GoLand.
Project GOPATH: settings apply only to the current project.
Module GOPATH: settings apply only to one module. A module can have an SDK that is different from those configured for a project. They can also carry a specific technology or a framework.
If you specified all three scopes, GoLand selects the narrowest scope first.
Open settings (Ctrl+Alt+S) and navigate to
.Depending on the scope that you want to apply, select the corresponding section (Global GOPATH, Project GOPATH, or Module GOPATH) and click the Add button .
In the file browser, navigate to the directory that you want to associate with GOPATH.
In the following example, we configured to use different GOPATH directories for different scopes. GoLand will use the Module GOPATH as it is the narrowest scope configured.