Go项目布局

2023/1/14

# 生产可执行程序为目的的Go项目结构

对于以生产可执行程序为目的的 Go 项目,它的典型项目结构分为五部分:

  • 放在项目顶层的 Go Module 相关文件,包括 go.mod 和 go.sum;
  • cmd 目录:存放项目要编译构建的可执行文件所对应的 main 包的源码文件;
  • 项目包目录:每个项目下的非 main 包都“平铺”在项目的根目录下,每个目录对应一个 Go 包;
  • internal 目录:存放仅项目内部引用的 Go 包,这些包无法被项目之外引用;
  • vendor 目录:这是一个可选目录,为了兼容 Go 1.5 引入的 vendor 构建模式而存在的。这个目录下的内容均由 Go 命令自动维护,不需要开发者手工干预。