10 秒钟搭建一个 Gin 项目?试试 ginGen!
本帖最后由 mrkong 于 2025-8-7 16:27 编辑一、为什么需要脚手架?在创建一个 Go Web 项目时,我们通常要重复很多机械性的工作:
[*]初始化 go module;
[*]安装 Gin 框架;
[*]创建基础目录结构;
[*]编写路由模板;
[*]配置数据库连接...
虽然现在有 AI 工具如 Cursor、Trae、Cline 等辅助生成,但依然需要写提示词、等响应,流程复杂,不够高效。前端领域早已有成熟的脚手架工具,如 vue-cli、create-react-app,Go 项目也应该拥有一个“开箱即用”的脚手架。所以,ginGen 来了!只需一句命令:ginGen new my-shop --module github.com/myteam/my-shop
再来一句:cd my-shop && ginGen add mysql
一个标准的 Go + Gin 项目就搞定了,是不是很香?二、手把手体验 ginGen
项目结构预览
my-shop/
├── cmd/
│ └── server/
│ └── main.go # 启动入口
├── configs/
│ └── config.yaml # 统一配置文件
├── internal/
│ ├── config/ # 配置加载
│ ├── router/ # 路由管理
│ └── repository/ # 数据层(DAO)
└── go.mod
安装 ginGengo install github.com/leixiaotian1/ginGen@latest
安装后,验证是否成功:ginGen version
创建项目骨架ginGen new my-shop --module github.com/myteam/my-shop
控制台输出如下:✅ 创建目录结构
✅ 初始化 go module
✅ 安装 Gin 框架
✅ 生成基础路由模板
启动项目:cd my-shop
go run cmd/server/main.go
打开浏览器访问:http://localhost:8080/ping
输出:{"message": "pong"}
添加 MySQL 支持
ginGen add mysql
自动完成以下操作:
✅ 安装 GORM 和 MySQL 驱动
✅ 创建数据库连接逻辑
✅ 添加数据库配置项
查看 configs/config.yaml,可以看到多了:
mysql:
dsn: "user:pass@tcp(localhost:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
三、ginGen 实现原理揭秘1️⃣ 命令行解析 —— 使用 Cobra
var newCmd = &cobra.Command{
Use: "new <项目名>",
Short: "创建新项目",
Run: func(cmd *cobra.Command, args []string) {
// 生成项目逻辑
},
}
Cobra 是 Go 最常用的 CLI 库,支持:
[*]子命令嵌套
[*]参数校验
[*]自动帮助文档生成
2️⃣ 模板引擎 —— 项目文件模板化比如 main.go 的模板:// templates/new/main.go.tmpl
package main
import (
"{{.ModulePath}}/internal/router"
"github.com/gin-gonic/gin"
)
func main() {
r := gin.Default()
router.SetupRoutes(r)
r.Run(":8080")
}
渲染时 {{.ModulePath}} 会被自动替换为实际的模块路径。
3️⃣ 自动化操作 —— 背后执行各种命令
// 初始化 Go module
exec.Command("go", "mod", "init", modulePath).Run()
// 安装依赖
exec.Command("go", "get", "github.com/gin-gonic/gin").Run()
四、为什么说 ginGen 好用?
对比项手动创建使用 ginGen
创建耗时10 分钟以上10 秒
项目结构容易出错不统一标准统一
依赖管理容易遗漏自动处理
数据库支持手写模板 & 驱动一键集成 GORM
五、未来规划ginGen 还在持续迭代中,未来版本将会支持:
[*]✅ 组件市场:一键集成 Redis、Kafka、RabbitMQ、Elasticsearch 等;
[*]✅ 自定义模板:支持企业自定义项目模板,打造私有标准;
[*]✅ 智能配置:自动检测系统环境,智能生成 config.yaml;
[*]✅ 插件系统:支持社区和第三方开发者扩展功能。
六、总结ginGen 是一个为 Go 开发者量身打造的 Gin 项目生成器。使用它可以极大提升开发效率,减少重复劳动,统一团队的项目结构。
		页: 
[1]