Go 项目模块机制
· 阅读需 6 分钟
掌握任何一个真实项目,必然要以熟悉编程语言的模块系统为前提。Go 的模块系统有一些独特之处,在这里做一下完整记录。
GOPATH 和 Go Module
windows 安装 Go 时,有一个步骤是设置 GOPATH 环境变量,值是工作空间路径,默认可以设置为 C:\Users\<用户名>\go
。早期版本,Go 项目只能放在 GOPATH 目录下。从 1.13 版本开始,Go Mudules 成为默认的依赖管理方式。Modules 规定了内部模块的命名和依赖、项目版本管理和外部依赖。如果项目使用 Go Modules,GOPATH 主要用于存放下载的依赖包(缓存)等内容。
使用 Go Modules 的步骤
1. 初始化 Go Modules
在项目的根目录下运行以下命令:
go mod init <module-name>
<module-name>
通常是项目的模块路径(比如 Git 仓库地址),例如:
go mod init github.com/username/projectname
- 如果只是本地项目,可以随意指定一个名称,比如:
go mod init myproject
运行完成后,会生成一个 go.mod
文件,内容如下:
module myproject
go 1.20 // 你的 Go 版本
2. 开发你的项目
你可以在当前目录下自由组织代码,比如:
myproject/
├── go.mod
├── main.go
└── pkg/
└── mylib/
└── mylib.go
在 main.go
中可以正常导入包:
package main
import "myproject/pkg/mylib" // 路径以项目名开头
func main() {
mylib.Hello()
}