项目创建-init - 图1提示

v2 版本开始,项目的创建不再依赖远端获取,仓库模板已经通过 资源管理 的方式内置到了工具二进制文件中,因此项目创建速度非常迅速。

使用方式

  1. $ gf init -h
  2. USAGE
  3. gf init ARGUMENT [OPTION]
  4. ARGUMENT
  5. NAME 项目名称,在当前目录下创建名为 NAME 的文件夹,并且 module 名称也为 NAME
  6. OPTION
  7. -m, --mono 初始化大仓模式 mono-repo
  8. -a, --monoApp 初始化大仓下的一个小仓 mono-repo-app
  9. -u, --update 初始化后使用最新的框架版本
  10. -g, --module 自定义 module
  11. -h, --help 更多帮助
  12. EXAMPLE
  13. gf init my-project
  14. gf init my-mono-repo -m

我们可以使用 init 命令在当前目录生成一个示例的 GoFrame 空框架项目,并可给定项目名称参数。生成的项目目录结构仅供参考,根据业务项目具体情况可自行调整。生成的目录结构请参考 代码分层设计 章节。

项目创建-init - 图2备注

GoFrame 框架开发推荐统一使用官方的 go module 特性进行依赖包管理,因此空项目根目录下也有一个 go.mod 文件。

项目创建-init - 图3提示

工程目录采用了通用化的设计,实际项目中可以根据项目需要适当增减模板给定的目录。例如,没有 kubernetes 部署需求的场景,直接删除对应 deploy 目录即可。

使用示例

在当前目录下初始化项目

  1. $ gf init .
  2. initializing...
  3. initialization done!
  4. you can now run 'gf run main.go' to start your journey, enjoy!

创建一个指定名称的项目

  1. $ gf init myapp
  2. initializing...
  3. initialization done!
  4. you can now run 'cd myapp && gf run main.go' to start your journey, enjoy!

创建一个 MonoRepo 项目

默认情况下创建的是 SingleRepo 项目,若有需要也可以创建一个 MonoRepo(大仓)项目,通过使用 -m 选项即可。

  1. $ gf init mymono -m
  2. initializing...
  3. initialization done!

关于大仓的介绍请参考章节: 微服务大仓管理模式

创建一个 MonoRepoApp 项目

若需要在 MonoRepo(大仓)下的创建一个小仓,在仓库项目根目录下,给定需要生成的项目地址,并使用 -a 选项即可。

  1. $ gf init app/user -a
  2. initializing...
  3. initialization done!