2a6f5f81b7
1. 新增`ms`微服务模板,包含共享项目、微服务、网关、应用等完整架构 2. 为`hua new`命令添加`ms`模板选项并更新文档 3. 将模板文件嵌入CLI项目输出目录 4. 实现微服务模板的项目构建逻辑,自动安装并使用dotnet自定义模板创建项目
2.4 KiB
2.4 KiB
Hua.Cli
面向 .NET 生态的全局命令行工具(Global .NET CLI Tool),为开发者提供项目脚手架生成和依赖版本管理等基础开发工作流支持。
安装
dotnet tool install -g Hua.Cli
命令列表
| 命令 | 描述 |
|---|---|
hua help |
显示帮助信息 |
hua new |
基于模板创建新项目/解决方案 |
hua update |
更新项目 NuGet 包版本 |
使用示例
创建新项目
# 创建标准分层应用
hua new MyProject
# 创建微服务解决方案
hua new MyMicroservice -t ms
# 指定模板和选项
hua new MyProject -t app -db ef -u mvc
# 指定输出目录
hua new MyProject -o D:\Projects
更新依赖
# 更新到最新版本
hua update
# 更新到指定版本
hua update -v 9.0.0
# 试运行
hua update --dry-run
查看帮助
# 查看所有命令
hua help
# 查看指定命令的详细帮助
hua help new
hua help update
项目结构
Hua.Cli/
├── src/
│ ├── Hua.Cli/ # 启动入口
│ └── Hua.Cli.Core/ # 核心逻辑
│ └── Hua/Cli/
│ ├── Args/ # 命令行参数解析
│ ├── Commands/ # 命令实现 (help/new/update)
│ ├── Configuration/ # 配置管理
│ ├── Http/ # HTTP 客户端
│ ├── ProjectBuilding/ # 项目构建流水线引擎
│ ├── ProjectModification/ # 项目修改工具
│ ├── Utils/ # 工具类
│ └── Version/ # 版本管理
└── test/
└── Hua.Cli.Tests/ # 单元测试
技术栈
- 目标框架: .NET 9.0
- 依赖注入: Autofac (Volo.Abp.Autofac)
- 日志: Serilog
- 模板引擎: 自研文件替换引擎
- NuGet: NuGet.Versioning + NuGet.Protocol
架构设计
本项目借鉴 Volo.Abp.Cli 的分层插件化架构设计:
- 命令模式: 所有操作封装为
IConsoleCommand实现,通过CommandSelector动态路由 - 流水线模式: 项目构建采用
ProjectBuildPipeline串联多个ProjectBuildPipelineStep - 策略模式: 不同模板通过继承
TemplateInfo基类实现各自构建步骤
开发
# 还原依赖
dotnet restore
# 编译
dotnet build
# 运行测试
dotnet test
# 本地运行
dotnet run --project src/Hua.Cli -- help