diff --git a/README.md b/README.md index 19c9120..6d8ad58 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,57 @@ -# codegen +# SnailCodeGen -## 项目描述: -### 脚手架生成器,可以根据数据库的表生成可执行的完整项目. -### 基础组件 : java8(jdk corretto-1.8) + maven(3.8.0) + springboot + mybatis + mybatisplus -### 可选组件 : xxlJob + swagger + redis + mysql + minio + satoken -### 例如生成项目目录结构: -~~~java +## 项目描述: + +1. JAVA和VUE脚手架生成器,可以生成可执行的完整项目。 +2. 用于初始创建空项目也可以根据数据库的表生成可执行的完整项目 。 +3. VUE脚手架以vue-vben-admin框架为基础的脚手架,根据数据库的表和JAVA脚手架生成列表界面。能自动适配枚举,适配图片并增加上传组件。 + +## 操作方式: + +**注** 运行环境 Python `3.13.5` ;浏览器 `Chrome 80+` ; npm `11.6.1+`; node `v22.20.0+` ; java `8`/java `21`; maven `3.8.0` + +~~~shell + # -------------------打包------------------- + Windows 运行命令: + python.exe -m pip install pyinstaller + python.exe -m PyInstaller --onefile --name generator generator.py + Mac/Linux 运行命令: + python3 -m pip install pyinstaller + python3 -m PyInstaller --onefile --name generator generator.py + python -m PyInstaller --onefile --name generator generator.py + C:\Users\DELL\AppData\Local\Programs\Python\Python313\python.exe -m PyInstaller --onefile --name generator generator.py + #------------JAVA脚手架执行操作---------------- + generator.exe -h + options: + -h, --help #show this help message and exit + --tab #表名,多个用逗号分隔,例如: tab,tab2 + --model #可选模块 xxlJob,minio,saToken,swagger,vue + --rew #是否覆盖已存在文件(默认不覆盖),不覆盖:false,覆盖:true + --conf #* 配置文件路径,默认路径./config.yml + --jdk #Java版本号,默认Java 8, JAVA21直接输入21 + + generator.exe --conf ./config.yml #空项目 + generator.exe --model swagger #组件模块 + generator.exe --tab HealthFun #生成表对应的接口 + generator.exe --conf ./config.yml --tab HealthFun #组合命令 + generator.exe --conf ./config.yml --model swagger #组合命令 + generator.exe --conf ./config.yml --tab HealthFun --model swagger --jdk 21 --rew true #组合命令 + generator.exe --model vue --tab table_names #vue 组件以及适配对应的枚举表 + C:\Users\DELL\AppData\Local\Programs\Python\Python313\python.exe .\generator.py --model swagger # 不打包也可以直接运行 + #----------vue脚手架--------------------------- + C:\Users\DELL\AppData\Local\Programs\Python\Python313\python.exe .\frontend_vue.py health_fun +~~~ + +**目前已集成的组件:** + +基础组件 : java8(jdk corretto-1.8/21) + maven(3.8.0) + springboot + mybatis + mybatisplus +可选组件 : xxlJob + swagger + redis + mysql + minio + satoken +前端组件 : vue-vben-admin 框架 + +### 生成项目目录结构: + +~~~shell + #java 脚手架目录 src ├── main │ ├── java @@ -49,44 +95,71 @@ └── pom.xml ~~~ -## 运行生成项目目录结构: -~~~java +~~~shell +vue-vben-admin/ +├── apps/ # 应用目录(不同 UI 框架的成品) +│ ├── web-antd/ # Ant Design Vue 版本 +| | └──src +| | ├──api +| | | ├──core +| | | ├──user.ts #自动生成的接口调用 +| | | └──... +| | ├──routes +| | | └──routes +| | | └──modules +| | | ├──user.ts #自动生成路由 +| | | └──... +| | ├──views +| | | └──user +| | | ├──data.ts #自动生成数据适配 +| | | ├──form.ts #自动生成表单适配 +| | | └──form.ts #自动生成界面 +│ ├── web-ele/ # Element Plus 版本 +│ ├── web-naive/ # Naive UI 版本 +│ ├── web-tdesign/ # TDesign 版本 +│ └── backend-mock/ # Nitro Mock 服务 +│ +├── packages/ # 共享功能包(核心代码) +│ ├── @core/ # 框架无关的核心基础 +│ │ ├── base/ # 基础工具、图标、类型定义 +│ │ ├── ui-kit/ # UI 组件(表单、弹窗、菜单等) +│ │ └── composables/ # 共享组合式 API +│ ├── effects/ # 高级业务功能 +│ │ ├── layouts/ # 布局组件 +│ │ ├── common-ui/ # 通用 UI(加载、提示框等) +│ │ ├── access/ # 权限控制 +│ │ └── hooks/ # 应用级 Hooks +│ └── stores/ # Pinia 状态管理 +│ +├── internal/ # 内部工具配置 +│ ├── vite-config/ # Vite 配置预设 +│ ├── tailwind-config/ # Tailwind CSS 配置 +│ └── lint-configs/ # ESLint / Stylelint 规则 +│ +├── playground/ # 开发测试环境 +├── docs/ # 项目文档 +└── scripts/ # 脚本工具 + +~~~ + +## 脚手架目录结构: + +~~~shell codegen/ - ├── generator.py 主函数 + ├── generator.py java主程序 + ├── frontend_vue.py vue主程序 ├── config.yml 项目配置文件 ├── templates/ 模板文件 - │ ├── entity.java.j2 - │ ├── controller.java.j2 - │ └── ... + ├── ├── java/ + │ │ ├── entity.java.j2 + │ │ ├── controller.java.j2 + │ │ └── ... + ├── └── vue/ + │ ├── api.ts.j2 + │ ├── data.ts.j2 + │ └── ... ├── utils.py 公共 方法 ├── db.py 数据库操作 └── requirements.txt 依赖包 ~~~ - -## 已知可运行环境 Python 3.13.5 -### 打包 -### Windows 运行命令: -### python.exe -m pip install pyinstaller -### python.exe -m PyInstaller --onefile --name generator generator.py -### Mac/Linux 运行命令: -### python3 -m pip install pyinstaller -### python3 -m PyInstaller --onefile --name generator generator.py - -## 执行 (templates 模板目录和 generator.exe 要在同一目录同级别) - -~~~java - generator.exe -h - - options: - -h, --help show this help message and exit - --tab 表名,多个用逗号分隔,例如: tab,tab2 - --model 可选模块 xxlJob,minio,saToken,swagger - --rew 是否覆盖已存在文件(默认不覆盖),不覆盖:false,覆盖:true - --conf * 配置文件路径,默认路径./config.yml - --jdk Java版本号,默认Java 8, JAVA21直接输入21 - - generator.exe --conf ./config.yml --tab HealthFun - generator.exe --conf ./config.yml --tab HealthFun --model swagger --jdk 21 --rew true -~~~ -