You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

7.2 KiB

SnailCodeGen

项目描述:

  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

    # -------------------打包-------------------
    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 框架

生成项目目录结构:

    #java 脚手架目录
    src
    ├── main
    │   ├── java
    │   │   └── com
    │   │       └── test
    │   │           └── api
    │   │               ├── models
    │   │               │   ├── common
    │   │               │   └── config
    │   │               │       ├── MybatisPlusConfig.java
    │   │               │       ├── WebLogAspect.java
    │   │               │       └── unit
    │   │               │           ├── FilesUtil.java
    │   │               │           ├── Md5HashUtil.java
    │   │               │           └── vo
    │   │               │               └── Result.java
    │   │               ├── controller
    │   │               │   └── HealthFunController.java
    │   │               ├── entity
    │   │               │   ├── BaseEntity.java
    │   │               │   └── HealthFun.java
    │   │               ├── mapper
    │   │               │   └── HealthFunMapper.java
    │   │               ├── service
    │   │               │   ├── impl
    │   │               │   │   └── HealthFunMPJBaseServiceImpl.java
    │   │               │   └── HealthFunService.java
    │   │               └── Application.java
    │   └── resources
    │       ├── mappers
    │       │   └── HealthFunMapper.xml
    │       ├── application.yml
    │       ├── application-dev.yml
    │       └── logback.xml
    ├── test
    │   └── java
    │       └── com
    │           └── test
    │               └── api
    │                   └── ApplicationTests.java
    └── pom.xml
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/                    # 脚本工具

脚手架目录结构:

    codegen/
    ├── generator.py java主程序
    ├── frontend_vue.py vue主程序
    ├── config.yml  项目配置文件
    ├── templates/ 模板文件
    ├── ├── java/
    │   │   ├── entity.java.j2
    │   │   ├── controller.java.j2
    │   │   └── ...
    ├── └── vue/
    │       ├── api.ts.j2
    │       ├── data.ts.j2
    │       └── ...
    ├── utils.py   公共 方法
    ├── db.py 数据库操作
    └── requirements.txt 依赖包