|
|
|
@ -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 |
|
|
|
~~~ |
|
|
|
|
|
|
|
|