GoLand 2021.3 Help

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.

Changing GOROOT and GOPATH

GOROOT

Configure GOROOT

Ensure that the provided path to the folder with Go SDK includes bin and src folders.

  1. Open settings (Ctrl+Alt+S) and navigate to Go | GOROOT.

  2. Click the Add SDK button the Add SDK button and select Local.

  3. In the file browser, navigate to the SDK version that is on your hard drive.

  4. Click Open.

    Select a local copy of Go SDK

Download the Go SDK

  1. Open settings (Ctrl+Alt+S) and navigate to Go | GOROOT.

  2. Click the Add SDK button (the Add SDK icon) and select Download.

  3. From the Version list, select the SDK version.

  4. In the Location field, specify the path for the SDK. To use a file browser, click the Browse icon the Browse icon.

  5. Click OK to close the Download Go SDK dialog.

    As you click Apply or OK on the GOROOT page, GoLand will start downloading and unpacking the Go SDK.

    Download 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.

Types of settings

If you specified all three scopes, GoLand selects the narrowest scope first.

  1. Open settings (Ctrl+Alt+S) and navigate to Go | GOPATH.

  2. 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 the Add button.

  3. 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.

    Configuring GOPATH for different scopes
Last modified: 19 March 2022