Files
Hua.Cli/README.md
T
ShaoHua 2a6f5f81b7 feat(cli): add ms microservice template support
1. 新增`ms`微服务模板,包含共享项目、微服务、网关、应用等完整架构
2. 为`hua new`命令添加`ms`模板选项并更新文档
3. 将模板文件嵌入CLI项目输出目录
4. 实现微服务模板的项目构建逻辑,自动安装并使用dotnet自定义模板创建项目
2026-07-15 11:30:43 +08:00

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