
cmd/goweb3/main.go 主程序说明一、程序概述main.go是goweb3命令行工具的入口文件是一个基于 Go 语言开发的 Web3 后端脚手架工具提供代码生成、依赖管理、服务启动等一站式开发能力。二、核心结构gofunc main() { // 1. 启动性能分析服务 go func() { http.ListenAndServe(localhost:6060, nil) }() // 2. 初始化配置文件如果不存在 webfile.FindBeanWebFileService().IniConfigIfNotExist() // 3. 执行命令菜单 menu.Execute() }三、三大核心模块模块作用关键函数pprof性能分析服务监听localhost:6060http.ListenAndServe()webfile配置文件初始化与文件复制服务IniConfigIfNotExist()menu命令行菜单系统管理所有子命令Execute()四、命令菜单体系通过menu.go注册的命令结构如下plainTextroot ├── all (allcmd) - 所有编码命令 ├── code-es/code-db - ES/DB代码生成 ├── meta2es/meta2db - 元数据同步 ├── list (listcmd) - 显示配置信息、服务信息、文件路径 ├── stat (statcmd) - 性能统计 ├── godi (godicmd) - 依赖注入 ├── cv (checkgvcmd) - 检查版本冲突 ├── cc (cccmd) - 检查代码圈复杂度 ├── nats (natscmd) - NATS消息服务 ├── rpc (gorpccmd) - GoRPC服务 ├── gtag (gitcmd) - Git标签版本管理 ├── inst (instcmd) - 一键生成工程 └── i (instcmd) - 一键安装子项五、WebFileService 核心功能WebFileService负责模板文件的复制和配置管理方法功能CopyWeb2Sample()复制 Web 示例代码到项目CopyDomain2Sample()复制领域层代码CopyData2Sample()复制数据访问层代码CopyConfigIfNotExist()如果配置不存在则复制ReplaceYmlFactryPkg()替换 YML 配置中的包名ChangePkg()批量替换 Go 文件中的包路径六、执行流程plainText启动程序 ↓ 启动 pprof 服务 (goroutine) ↓ 检查并初始化配置文件 ↓ 解析命令行参数 ↓ 执行对应子命令 ↓ 退出七、技术要点pprof 集成通过net/http/pprof包在localhost:6060提供性能分析端点单例模式FindBeanWebFileService()使用工厂模式获取单例服务实例命令行框架基于自定义的menufactroy实现命令注册和执行配置管理自动检测并复制模板配置文件支持包路径替换八、使用方式bash# 查看所有命令 goweb3 # 生成 ES 代码 goweb3 code-es # 一键初始化工程 goweb3 inst # 查看配置信息 goweb3 listgoinstall.batgoweb3 -h