Skip to content

Maltose CLI

maltose 用于创建项目,以及从数据库或 Go 契约生成重复代码。生成器负责骨架,不替代业务实现。

安装

CLI 需要 Go 1.25 或更高版本:

bash
go install github.com/graingo/maltose/cmd/maltose@latest
maltose --version

确保 $(go env GOPATH)/bin 已加入 PATH

命令速查

命令输入主要输出
maltose newquickstart Git 模板新项目目录
maltose gen model数据库 .envinternal/model
maltose gen dao数据库 .envinternal/dao
maltose gen serviceapi 中的 *Req/*ResController、Service
maltose gen logicService 接口Logic 实现骨架
maltose gen openapi嵌入 m.Meta 的 API 定义OpenAPI YAML/JSON

所有参数见命令参考

推荐工作流

创建项目

bash
maltose new my-project --module github.com/acme/my-project
cd my-project
go run .

new 会同步更新 go.mod 和模板中的 Go import path,并自动执行 go mod tidy。如果任何准备步骤失败,CLI 会删除未完成的项目目录,避免留下不可用的半成品。

数据库驱动开发

bash
# 先在项目根目录准备 .env
maltose gen model
maltose gen dao

生成命令读取 .env;应用运行时读取 mcfg,两套配置需要保持一致。

契约驱动开发

  1. api/<module>/<version>/ 定义 *Req*Resm.Meta
  2. 生成 Controller 与 Service。
  3. 生成 Logic 骨架。
  4. 根据业务需求完成生成文件中的 TODO
  5. 生成 OpenAPI,并运行测试。
bash
maltose gen service
maltose gen logic
maltose gen openapi
go test ./...

生成代码的边界

  • 生成前提交或暂存现有改动,便于审查差异。
  • internal/dao/internal 属于生成实现,不要直接维护业务逻辑。
  • Controller 和 Logic 骨架仍需要人工实现。
  • 数据库或 API 契约变化后重新生成,并检查是否出现重复或不兼容签名。
  • 将生成代码纳入版本控制,避免不同开发环境产生漂移。

Released under the MIT License.