Go中创建模块需用go mod init指定模块路径(如github.com/username/project),生成go.mod和go.sum文件,依赖由工具链自动管理,推荐cmd/internal/pkg等目录结构。
在 Go 中创建模块,核心是使用
命令初始化项目并管理依赖。从 Go 1.11 起,模块(module)成为官方推荐的依赖管理机制,取代了旧的
工作模式。只要你的项目有明确的导入路径(即 module path),就能用
快速启动。
明确模块路径再执行 go mod init
的关键参数是模块路径(module path),它通常对应项目的远程仓库地址(如
),但也可以是任意合法的标识符(例如本地开发时可用
)。这个路径会写入
文件首行,并影响后续所有包的导入语句。
在项目根目录运行:
如果尚未关联远程仓库,可先用占位路径(如
),后续再通过
修改
模块路径中避免使用下划线(
)或大写字母,推荐全小写、短横线分隔的风格
初始化后自动生成 go.mod 和 go.sum
执行
后,Go 会生成两个关键文件:
:声明模块路径、Go 版本、直接依赖及其版本(格式为
)
:记录每个依赖模块的加密校验和,用于验证下载内容完整性,不应手动修改
两者都应纳入版本控制(Git);若项目无外部依赖,
中可能只有
和
两行
添加依赖时自动更新 go.mod
无需手动编辑
,Go 工具链会在你首次导入并使用某个包时自动下载并记录依赖:
GitHub Copilot
GitHub AI编程工具,实时编程建议
下载
立即学习
“
go语言免费学习笔记(深入)
”;
在代码中写
,然后运行
或
Go 会自动下载该模块最新兼容版本,并在
中添加
行
也可显式触发:
(支持版本号、分支名、commit hash)
保持模块结构清晰的常用习惯
模块本身不强制目录结构,但合理组织能提升可维护性:
存放可执行命令(每个子目录一个 main 包)
存放仅本模块使用的私有包(Go 会阻止外部模块导入)
存放可被其他项目复用的公共库包
或
存放接口定义或协议文件
主模块的
通常放在项目根目录或
下
go modGOPATHgo mod initgo mod initgithub.com/username/projectmyappgo.modgo mod init github.com/yourname/myprojectgo mod init myprojectgo mod edit -module new/path_go mod initgo.modrequire example.com/v2 v2.0.0go.sumgo.modmodulegogo.modimport "golang.org/x/sync/errgroup"go buildgo run *.gogo.modrequirego get golang.org/x/sync@v0.7.0cmd/internal/pkg/api/proto/main.gocmd/xxx/