目录

下载
代码包文档网站(http://godoc.org)
Go语言中文网(http://studygolang.com)

环境变量
如果不是下载的安装包,需要配置环境变量
windows
- GOROOT={Go 安装目录}
- GOPATH={工作区目录}
- PATH后追加;%GOROOT%\bin;%GOPATH%\bin

环境变量
- GOOS代表程序构建环境的目标操作系统,其值可以是linux,windows,freebsd,darwin;
- GORACH代表程序构建环境的目标计算架构,其值可以是386,amd64或arm;之后提到的平台相关目录是通过{GOOS}_{GORACH}的方式来命名的。
(如Go归档文件的存放路径就是根据"平台相关目录"来指定的)
添加Go插件
启动Intellij IDEA,点击File --> Settings --> Plugins, 搜索Go ,安装Go 和Go Template和Go Template,然后重启

配置GOROOT
点击File --> Settings --> Languages & Frameworks --> Go --> GOROOT

配置GOPATH
File --> Settings --> Languages & Frameworks --> Go --> GOPATH,在下面的 Project GOPATH 可以添加自己的工程路径
- 全局 GOPATH :适用于 IDEA 中的所有项目。在
Global GOPATH字段中,点击+按钮,然后在文件浏览器中选择您希望作为工作区的目录(例如~/go或%USERPROFILE%\go)。 - 项目 GOPATH :仅适用于当前项目。在
Project GOPATH部分,点击+按钮,为当前项目指定一个特定的路径。 - 模块 GOPATH:如果项目包含多个模块,还可以为特定模块单独配置 GOPATH。(推荐)

配置Go Modules
GOPROXY=https://goproxy.io


传统 Go 项目导入
小型、简单或临时性项目通常直接使用go build等命令,无需额外配置。而中大型、生产环境或团队协作项目普遍采用Makefile,以规范流程、提高效率。
传统 Go 项目
- 基于 GOPATH 模式的传统 Go 项目(没有 go.mod 文件)
- 包含多个微服务模块
- 使用 Makefile 进行构建
- 配置文件为 JSON 格式
多模块Makefile整合构建
创建根目录 Makefile
如果项目有多个模块,每个模块都有Makefile,可以在项目根目录(如 D:\GO\GOPRO)下创建一个统一的 Makefile,用于集中管理所有模块的构建任务。
# 根目录 Makefile 示例
MODULES = auth backend cache #所有模块
# 默认目标:构建所有模块
all: $(MODULES)
# 为每个模块定义构建规则
$(MODULES):
@echo "Building module: $@"
@cd $@ && $(MAKE) aaa
# 清理所有模块
clean:
@for module in $(MODULES); do \
echo "Cleaning module: $$module"; \
cd $$module && $(MAKE) clean; \
done
.PHONY: all clean $(MODULES)
# 使用示例
# make all
# 构建单个模块
# make auth
# 清理所有模块
# make clean
由于项目采用 GOPATH 模式,需要正确设置 GOPATH:(如有Makefile文件,修改Makefile文件里的GOPATH)
检查GOPATH设置:
go env GOPATH
等同
echo $env:GOPATH
设置GOPATH:
$env:GOPATH = "D:\GO\GOPRO";D:\GO\GOPRO\common"
go.mod 文件方式
项目根目录创建文件:go.mod
示例内容:
module mixue
go 1.19
// 核心第三方依赖包
require (
// NSQ消息队列
github.com/nsqio/go-nsq v1.1.0
// 定时任务
github.com/robfig/cron v1.2.0
// Web框架
github.com/gin-gonic/gin v1.9.0
)
// 间接依赖(由直接依赖引入的包)
require (
github.com/fsnotify/fsnotify v1.6.0 // indirect
github.com/gin-contrib/sse v0.1.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
// 替换规则 - 解决依赖冲突
replace (
// 锁定特定版本避免冲突
github.com/golang/protobuf => github.com/golang/protobuf v1.5.2
github.com/nsqio/go-nsq => github.com/nsqio/go-nsq v1.1.0
// 替换有问题的依赖版本
github.com/caixw/apidoc => github.com/caixw/apidoc v0.0.0-20200917092445-7a1d2d3e3e3e
)
// 排除规则 - 排除有问题的版本
exclude (
// 排除导致冲突的版本
github.com/golang/snappy v0.0.5
)
// 工作区配置(如果需要多个模块)
// workspace ../other-module
执行:go mod tidy
go mod tidy 是 Go 模块(Go Modules)系统中的核心命令,其主要作用是自动同步 go.mod 和 go.sum 文件与项目源代码中实际使用的依赖关系,确保依赖声明的准确性、最小化和可复现性。核心功能:清理无用依赖,补充缺失依赖,校验与更新依赖一致性
验证go.mod文件是否正确:go mod verify
命令:
- 检查Go版本:go version
- 安装依赖:go get github.com/robfig/cron
- 检查当前的环境设置:go env GO111MODULE
- 检查GOPATH设置:go env GOPATH
- 禁用 Go Modules 功能:$env:GO111MODULE="off"
- 安装Go依赖:go mod download