GOROOT 和 GOPATH
Go 工具期望源代码有特定的布局。 GOROOT 和 GOPATH 是定义此布局的环境变量。
GOROOT 是一个变量,定义了您的 Go SDK 的位置。 除非您计划使用不同的 Go 版本,否则无需更改此变量。
在 Go 开发中,GOPATH 变量在 Unix 上默认值为 $HOME/go ,在 Windows 上默认值为 %USERPROFILE%\go ,有几个用途:
二进制文件通过 go install 安装到
$GOBIN,$GOBIN默认为$GOPATH/bin。模块会被 go get 缓存在
$GOMODCACHE中,默认目录为 $GOPATH/pkg/mod。go get 在
$GOPATH/pkg/sumdb缓存校验和数据库状态。
有关 GOPATH 变量的详细信息,请参阅 go command 文档。
GOPATH 开发模式的概念,现在已被弃用,Go modules 是其前辈。 在 Go modules 之前,GOPATH 用于安装二进制文件和已编译的软件包,并下载源代码到指定路径。 有关使用 GOPATH 开发的更多信息,请参阅 go.dev 上的 GOPATH 开发模式。
请参考以下视频,我们将 Go SDK 从 1.16 Beta 1 更改为 1.20.1。
GOROOT
配置 GOROOT
要查看当前的 GOROOT 值,请打开设置 (Ctrl+Alt+S) 并导航到 。 点击下拉列表并选择 Go 版本。
如果没有可用的 Go 版本,请点击 添加 SDK 按钮 下载 Go 版本或 选择 Go SDK 本地副本的路径。
选择 Go SDK 的本地副本
确保提供的 Go SDK 文件夹路径包含 bin 和 源 文件夹。
打开设置 (Ctrl+Alt+S ),导航至 。
点击 添加SDK 按钮
并选择 本地。
在文件浏览器中,导航到硬盘上的 SDK 版本。
点击 打开。

下载 Go SDK
打开设置 (Ctrl+Alt+S ),导航至 。
请点击 添加SDK 按钮(
)并选择 下载。
从 版本 列表中选择 SDK 版本。
在 位置 字段中,指定 SDK 的路径。 要使用文件浏览器,请点击 浏览 图标
。
点击 OK 关闭 下载Go SDK 对话框。
当您点击 应用 或 OK 页面上的 GOROOT 时,IntelliJ IDEA 将开始下载和解压 Go SDK。

使用 asdf
asdf 是一种管理多种编程语言和工具多个版本的工具。 它允许在不同项目间切换不同的 Go 版本。 此外, asdf 可以设置不同的范围: asdf global ,为整个系统设置一个默认版本,以及 asdf local ,为特定目录设置一个版本。
IntelliJ IDEA 支持 asdf local 和 asdf global 命令,包括指定多个版本(例如, asdf local golang 1.21.0 1.20.8)。
为项目选择一个 asdf Go 版本
通过按下 Ctrl+Alt+S 打开设置,并导航到 。 .
从列表中选择您需要的 Go 版本。
GOPATH
为不同范围配置 GOPATH
您可以为以下范围配置 GOPATH:
全局GOPATH :设置适用于 IntelliJ IDEA 的特定安装的所有项目。
项目GOPATH :设置仅应用于当前项目。
模块GOPATH :设置仅适用于一个模块。 一个模块可以拥有与项目配置的 SDK 不同的 SDK。 它们也可以承载特定的技术或框架。

如果您指定了所有三个 scopes,IntelliJ IDEA 会优先选择最窄的 scope。
打开设置 (Ctrl+Alt+S ),导航至 。
根据您想要应用的范围,选择相应的部分(全局GOPATH、 项目GOPATH 或 模块GOPATH )并点击按钮 添加
。
在文件浏览器中,导航到您想要与 GOPATH 关联的目录。
在以下示例中,我们配置了在不同范围内使用不同的 GOPATH 目录。 IntelliJ IDEA 将使用 模块GOPATH ,因为这是配置的最窄范围。
