Go/Gin Gower Workspace 工作目录, 是基于 Go 语言的 Workspace 与 GOPATH 相结合实现的工作区模式.
Go Workspace 工作区
go.work 文件是 Go 1.18 版本引入的一个新特性, 用于管理多个模块(module)的工作区. 它允许你在一个工作区内同时开发和测试多个模块, 而不需要将这些模块作为依赖项添加到每个模块的 go.mod 文件中.
工作区的概念
- 工作区: 一个包含多个 Go 模块的目录.
go.work文件: 定义了工作区的配置文件, 指定了哪些模块属于这个工作区.
go.work 文件结构
go 1.18
use (
./src/module1
./src/module2
)
go 1.18: 指定 Go 的版本.use: 列出工作区中包含的模块路径.
创建 go.work 文件
-
使用命令
go work init可以创建一个新的go.work文件, 并指定初始模块.$ go work init -
这将生成一个
go.work文件.
添加和删除模块
- 添加模块: 使用
go work use命令将新的模块添加到go.work文件中.$ go work use src/module1
注意: 添加之前,
src/module1项目中, 已经存在 go.mod 文件
- 删除模块: 使用
go work remove命令从go.work文件中移除模块.$ go work remove src/module1
GOPATH
GOPATH 是 Go 语言中的一个重要环境变量, 用于指定 Go 项目的默认工作目录. 它主要用于管理 Go 代码的组织/构建和依赖关系. 以下是关于 GOPATH 的详细说明:
1. GOPATH 的概念
- GOPATH: 是一个环境变量, 指定了 Go 项目的默认工作目录.
- 工作目录: 在这个目录下, Go 会查找和管理源代码/二进制文件和包对象.
2. GOPATH 的结构
GOPATH 目录通常包含三个子目录:
src: 存放源代码文件.pkg: 存放三方依赖包的目录.bin: 存放编译后的可执行文件.
3. 设置 GOPATH
在 GoLand 中, 你可以在 Settings -> Go -> GOPATH 中设置项目级别的 GOPATH.
联合使用
当 Workspace 和 GOPATH 可以一起使用时, go mod tidy 会下载依赖包到 pkg/mod 目录下. go install 默认会将运行文件安装在 bin 目录下.