文章目录
-
- 1、安装Go语言编译程序
- [2、配置Golang IDE运行环境](#2、配置Golang IDE运行环境)
-
- 2.1、配置GO编译器
-
- [2.1.1、GOROOT 概述](#2.1.1、GOROOT 概述)
- [2.1.2、GOROOT 作用](#2.1.2、GOROOT 作用)
- [2.1.2、配置 GOROOT](#2.1.2、配置 GOROOT)
- 2.2、配置GO依赖管理
-
- 2.2.1、Module管理依赖
- [2.2.2、GOPATH 管理依赖](#2.2.2、GOPATH 管理依赖)
- 2.3、运行GO程序
-
- [2.3.1、创建 `hello.go` 文件](#2.3.1、创建
hello.go
文件) - [2.3.2、运行 `hello.go`](#2.3.2、运行
hello.go
)
- [2.3.1、创建 `hello.go` 文件](#2.3.1、创建
- [3、GoLang IDE 高效开发配置](#3、GoLang IDE 高效开发配置)
-
- [3.1、设置 goproxy](#3.1、设置 goproxy)
- 3.2、安装效率插件
1、安装Go语言编译程序
1.1、下载GoLang编译器
官网下载地址:https://golang.google.cn/dl/
根据自己的系统下载相应版本,这里下载的是最新版本,下翻页面可以选择下载历史版本
1.2、安装GoLang编译器
运行 go1.22.2.windows-amd64.msi
进入到下载目录下,双击 go1.22.2.windows-amd64.msi
文件进行安装
选择安装目录 :
点击Next
,根据提示一路点击确认或者下一步到完成界面
2、配置Golang IDE运行环境
推荐使用 Jetbrains Golang: https://www.jetbrains.com/go/
Jetbrains Golang 无社区版,只有付费版,网上白嫖教程基本无效,白嫖Golang解决方案探索
2.1、配置GO编译器
2.1.1、GOROOT 概述
GOROOT 是 Go 语言中的一个环境变量,它指定了Go语言的安装目录。GOROOT 通常指向 Go 语言的根目录,该目录下包含了 Go 语言的编译器、标准库以及其他工具链。
2.1.2、GOROOT 作用
在 Go 语言的开发和编译过程中,GOROOT 用于定位 Go 语言的标准库和工具,确保开发环境能够正确地使用和调用这些资源。
通常情况下,在安装 Go 编译器时,GOROOT 会自动配置为 Go 语言的安装路径。在开发过程中,可以通过设置或修改 GOROOT 环境变量来指定不同的Go编译器版本安装路径。
2.1.2、配置 GOROOT
启动 GoLang 并 New Project 一个项目,此时 GoLang 根据用户系统环境变量中配置的 GoLang 编译器位置 自动创建 GOROOT
- 如果安装了多个GoLang编译器版本,可以在下拉菜单中选择需要的版本
- 如果下拉菜单中没有安装过的版本,请检查是否配置了 GoLang 编译器 系统环境变量。
点击 Create
创建一个Go语言项目完成
2.2、配置GO依赖管理
从 Go 1.11 版本开始,Go 语言引入了 模块(Module) 的概念,用于替代GOPATH进行依赖管理,在使用模块的情况下,GOPATH 的作用有所减弱,但仍用于存储一些工具和标准库等内容。
从 Go 1.13 版本开始,可以完全不依赖 GOPATH
二者择其一即可,建议使用 模块(Module) 管理依赖
2.2.1、Module管理依赖
Go Module是Go语言官方引入的依赖管理工具,它的主要作用包括:
-
依赖管理 :Go Module可以帮助开发者管理项目的依赖关系。通过在项目中创建一个
go.mod
文件,Go Module能够记录项目所依赖的外部包及其版本信息。这样,开发者可以明确指定项目所需的依赖版本,避免因依赖版本不匹配而导致的问题。 -
版本控制:Go Module支持语义化版本控制(Semantic Versioning),开发者可以通过版本号来指定所需的依赖版本。这有助于确保项目的稳定性和可维护性,因为开发者可以明确知道项目使用了哪些版本的依赖。
-
灵活的项目布局 :使用Go Module,项目不再需要位于传统的GOPATH目录结构下。开发者可以将项目放在任意位置,只要项目根目录中包含
go.mod
文件即可。这为开发者提供了更大的灵活性,使得项目管理更加方便。 -
自动下载依赖:当使用Go Module时,开发者只需在代码中导入所需的包,Go工具链会自动下载并安装这些包。这简化了依赖管理的过程,开发者无需手动下载和管理依赖。
-
支持私有仓库:Go Module还支持从私有仓库中获取依赖。开发者可以通过配置代理或认证信息来访问私有仓库中的依赖包。
-
可替换依赖 :在某些情况下,开发者可能需要替换项目中的某个依赖包。Go Module提供了替换依赖的功能,开发者可以在
go.mod
文件中指定要替换的依赖及其替换版本。 -
可验证的依赖图 :Go Module会生成一个
go.sum
文件,记录项目中所有依赖包的哈希值。这样,开发者可以验证项目中的依赖是否被篡改,确保项目的安全性。
总之,Go Module的出现使得Go语言的依赖管理更加规范和便捷,为开发者提供了更好的开发体验。
Golang 创建项目时如果选择了高版本的GO编译器,会自动在项目根目录下创建go.mod
文件:
go
module GoBasic
go 1.21
2.2.2、GOPATH 管理依赖
GOPATH 是 Go 语言中另一个重要的环境变量,它指定了 Go 语言项目的工作空间。GOPATH 通常指向一个包含多个 Go 语言项目的目录,每个项目都位于GOPATH 下的一个子目录中。
在 Go 语言中,GOPATH 扮演着以下几个关键角色:
- 依赖管理:Go 语言使用 GOPATH 来管理项目的依赖关系。当一个项目依赖其他包时,Go 语言会自动在 GOPATH 中搜索并导入这些包。
- 构建和安装 :Go 语言使用 GOPATH 来构建和安装项目。当执行
go build
或go install
命令时,Go 语言会根据 GOPATH 中的项目结构来构建和安装可执行文件或库文件。 - 代码组织:GOPATH提供了一种组织代码的方式,使得不同的项目可以独立开发和管理。每个项目都位于GOPATH 下的一个子目录中,并且可以有自己的依赖关系和构建配置。
在开发过程中,通常需要设置 GOPATH 环境变量来指定项目的工作空间。这样 Go 编译器就会在 GOPATH 目录下搜索和构建项目。
New Project 一个Go项目后,进入GoLang项目管理界面,File->Settings-> Go -> GOPATH
1、Use GOPATH that's defined in system enviroment
取消选择,Global GOPATH 就不会有默认 GO项目目录了
2、Index entire GOPATH
在Golang中,Index entire GOPATH 是指在使用GoLand IDE时,将整个GOPATH路径下的内容都添加到项目的索引中。这样做的目的是让IDE能够更好地理解和处理项目中的依赖关系,提高代码编辑、自动完成和导航等功能的效率。如果选择这个选项,GoLand会将环境变量中配置的GOPATH路径下的所有内容都添加到项目的索引中。这样,即使项目中使用了不在项目目录中的第三方包,IDE也能够正确识别和处理这些包。但是,需要注意的是,Index entire GOPATH 可能会增加项目的索引时间和内存占用,特别是当GOPATH路径下包含大量文件和目录时。因此,在实际使用中,可以根据项目的具体情况来决定是否需要勾选这个选项。如果项目比较简单或者依赖关系较少,可以不勾选这个选项以减少索引时间和内存占用。反之,如果项目比较复杂或者依赖关系较多,勾选这个选项可以提高开发效率。
2.3、运行GO程序
如果选择 GOPATH 管理依赖记得删除项目根目录下的go.mod
文件(GoLang使用高版本Go编译器创建项目时会自动创建go.mod文件)
2.3.1、创建 hello.go
文件
go
package main
import "fmt"
func main() {
fmt.Println("Hello World !")
}
2.3.2、运行 hello.go
点击 Add Configuration... 配置Go编译器
点击OK
点击运行
3、GoLang IDE 高效开发配置
3.1、设置 goproxy
Goproxy是一个Go语言的模块代理工具,它的作用是作为Go Module的代理服务器,帮助开发者管理和下载Go语言项目的依赖模块。
可选的代理有如下(注意direct是必要的)
https://goproxy.io
https://goproxy.cn
https://mirrors.aliyun.com/goproxy
3.2、安装效率插件
3.2.1、goimports
goimports是Go语言开发中常用的一个工具,它基于Go语言的官方工具gofmt
,并增加了自动导入和删除包的功能。具体来说,goimports具有以下功能:
- 自动导入包 :在编辑Go代码时,如果使用了尚未导入的包,goimports会自动检测并导入这些包,无需手动添加
import
语句。 - 自动删除未使用的包 :如果导入的包在代码中没有被使用,goimports会自动删除这些无用的
import
语句,保持代码的整洁。 - 格式化代码 :goimports会按照Go语言的官方风格指南
gofmt
来格式化代码,包括缩进、空格、换行等,确保代码的一致性和可读性。 - 支持Go Modules:goimports支持Go语言的模块管理工具Go Modules,可以在使用模块管理的项目中正常工作。