# yuanbootctl CLI 工具
yuanbootctl 是 yuanboot 框架的官方命令行工具,用于快速生成项目骨架和管理微服务项目。
# 安装
# 在线安装
go install github.com/liangboceo/yuanboot/cli/yuanbootctl@latest
# 本地安装
cd yuanboot/cli/yuanbootctl
go install
安装位置:
$GOPATH/bin确保$GOPATH/bin已添加到$PATH环境变量
# 命令概览
| 命令 | 说明 |
|---|---|
yuanbootctl new | 从模板创建新项目 |
yuanbootctl build | 构建当前目录项目 |
yuanbootctl run | 运行当前目录项目 |
yuanbootctl version | 显示版本信息 |
# new - 创建新项目
从预定义模板快速创建 yuanboot 项目。
# 基本用法
yuanbootctl new <TEMPLATE> [-n <PROJECTNAME>] [-p <TARGETDIR>]
# 参数说明
| 参数 | 说明 |
|---|---|
<TEMPLATE> | 模板名称(必填) |
-n, --projectName | 项目名称,默认 demo |
-p, --path | 输出目录路径 |
-l, --templates | 列出所有可用模板 |
# 可用模板
| 模板 | 说明 | 适用场景 |
|---|---|---|
console | 控制台程序 | 后台任务、定时任务 |
webapi | API 接口程序 | RESTful API 服务 |
mvc | 标准 MVC 程序 | 传统 Web 应用 |
grpc | gRPC 服务 | 高性能 RPC 服务 |
xxl-job | 分布式任务调度 | 定时任务管理 |
iot | 物联网程序 | IoT 设备接入 |
simpleweb | 简单 Web 应用 | 快速原型开发 |
microservice | 微服务项目 | 微服务架构项目 |
# 示例
# 列出所有模板
yuanbootctl new -l
# 创建控制台项目
yuanbootctl new console -n myconsole -p ~/projects
# 创建 Web API 项目
yuanbootctl new webapi -n myapi -p ~/projects
# 创建 gRPC 项目
yuanbootctl new grpc -n mygrpc -p ~/projects
# 创建微服务项目
yuanbootctl new microservice -n myservice -p ~/projects
# build - 构建项目
构建当前工作目录下的 yuanboot 项目。
yuanbootctl build
# 示例
cd ~/projects/myapi
yuanbootctl build
# run - 运行项目
运行当前工作目录下的 yuanboot 项目。
yuanbootctl run
# 示例
cd ~/projects/myapi
yuanbootctl run
# version - 版本信息
显示 yuanbootctl 和 yuanboot 框架的版本信息。
yuanbootctl version
# 输出示例
:: yuanbootctl :: (version: 1.9.x)
# spec - API 规范系统
yuanboot 内置 API Spec 规范系统,为 AI 辅助编程提供清晰的代码上下文。
# 功能特性
- 声明式 API 定义: 使用结构体标签定义 API 元数据
- 自动生成文档: 从代码注释和标签自动生成 API 文档
- 多协议支持: 支持 REST API 和 gRPC
- AI 友好: 清晰的代码结构让 AI 助手能够准确理解
# Swagger 文档集成
yuanboot 支持通过 doc 标签自动生成 Swagger 文档:
// 使用 doc 标签标注字段说明
type CreateUserRequest struct {
mvc.RequestBody `route:"/api/users" doc:"创建用户"`
UserName string `json:"username" doc:"用户名"`
Password string `json:"password" doc:"密码"`
Email string `json:"email" doc:"邮箱"`
}
// 启用 Swagger 文档
endpoints.UseSwaggerDoc(rb,
swagger.Info{
Title: "API 文档",
Version: "v1.0.0",
Description: "API 描述文档",
},
func(openapi *swagger.OpenApi) {
openapi.AddSecurityBearerAuth()
})
# 生成 OpenAPI 规范
# 查看内置的 yuanboot 框架规格文档
cat yuanboot/cli/yuanbootctl/spec/spec/yuanboot.md
# AI 辅助编程指南
yuanboot 的声明式开发模式天然支持 AI 辅助编程:
# 1. 清晰的代码结构
// ✅ AI 友好的代码:明确的类型和结构
type UserController struct {
*mvc.ApiController
userService services.IUserService // 明确的依赖声明
}
// ❌ AI 难以理解的代码:隐式依赖
var userService *UserService
# 2. 声明式路由定义
// 清晰的路由定义
rb.GET("/users/:id", userHandler)
rb.POST("/users", createUserHandler)
// AI 可以准确理解路由结构
# 3. 结构化的配置
# 结构化的 YAML 配置
yuanboot:
app:
name: myapp
port: 8080
datasource:
db:
url: tcp(localhost:3306)/mydb
# 4. 提示工程建议
当使用 AI 助手编程时,可以参考以下提示词模板:
你是一个 yuanboot 框架专家。请帮我:
1. 创建一个用户管理 Controller
2. 使用 yuanboot 的 MVC 模式
3. 包含基本的增删改查功能
4. 添加 JWT 认证
# 最佳实践
# 1. 使用模板快速启动
# 使用模板创建项目,而不是从头开始
yuanbootctl new grpc -n myservice -p ~/projects
# 2. 利用结构化标签
// 使用 doc 标签提供清晰的文档
type OrderRequest struct {
mvc.RequestBody `route:"/api/orders" doc:"创建订单"`
ProductId int64 `json:"productId" doc:"商品ID"`
Quantity int `json:"quantity" doc:"数量"`
}
# 3. 遵循约定大于配置
- 使用标准的目录结构
- 遵循命名约定
- 利用框架默认行为
# 4. 版本控制
# 提交代码
git add .
git commit -m "feat: 添加用户管理功能"
# 常见问题
# Q: 命令找不到?
# 检查是否安装成功
which yuanbootctl
# 检查 GOPATH
echo $GOPATH
# 确认 PATH 包含 GOPATH/bin
export PATH=$PATH:$GOPATH/bin
# Q: 模板创建失败?
# 检查 Go 环境
go version
# 清理模块缓存
go clean -modcache
# 重新安装
go install github.com/liangboceo/yuanboot/cli/yuanbootctl@latest
# Q: 构建失败?
# 确保在项目根目录
cd ~/projects/myapi
# 初始化 Go 模块
go mod init
# 下载依赖
go mod tidy