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 new | quickstart Git 模板 | 新项目目录 |
maltose gen model | 数据库 .env | internal/model |
maltose gen dao | 数据库 .env | internal/dao |
maltose gen service | api 中的 *Req/*Res | Controller、Service |
maltose gen logic | Service 接口 | 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,两套配置需要保持一致。
契约驱动开发
- 在
api/<module>/<version>/定义*Req、*Res和m.Meta。 - 生成 Controller 与 Service。
- 生成 Logic 骨架。
- 根据业务需求完成生成文件中的
TODO。 - 生成 OpenAPI,并运行测试。
bash
maltose gen service
maltose gen logic
maltose gen openapi
go test ./...生成代码的边界
- 生成前提交或暂存现有改动,便于审查差异。
internal/dao/internal属于生成实现,不要直接维护业务逻辑。- Controller 和 Logic 骨架仍需要人工实现。
- 数据库或 API 契约变化后重新生成,并检查是否出现重复或不兼容签名。
- 将生成代码纳入版本控制,避免不同开发环境产生漂移。