代码生成器后端本地运行&部署
环境准备
- 代码生成器共享源码
- IDEA 你懂的教程
- Redis 网盘安装包 提取码: vmty
- MySQL5.7 网盘安装包 提取码:bbr5
- MySQL8.0 网盘安装包提取码:g17s
- MySQL 安装指南
- MySQL 官方下载链接
- XXL-job 官方 Git 地址
本地启动
设置 Maven 完成 https://www.codefather.cn/post/1836689783992958977
使用 IDEA 打开项目 yuzi-generator-maker 和 yuzi-generator-web-backend
选择 Java 版本
-
yuzi-generator-maker设置成 Java8 -
yuzi-generator-web-backend设置为 Java 17
没有的话可以使用下面的 Download JDK
选择 Java 17
- 本地没有 JDK 可以直接
Download JDK - 本地有 JDK 但是没识别到
Add JDK from disk选着对应目录即可 - 选择 Java >= 11 建议 17
初始化数据
连接本地 MySQL


点击 Download 下载 driver files

输入,账号密码之后点击Test Connection 成功之后直接点击 OK

打开 yuzi-generator-web-backend 找到根目录 sql 目录下面的 create_table.sql
如果有下面这个黄色的条 选择 Use MySQL 即可


全选 SQL 文件 Ctrl + A 权限文件右键 execute

选择 Use Default Schema 运行 SQL

执行成功之后的情况

可以在右侧 Databae 找到创建的 my_db 数据库

如果没有的话可以,找到对应的数据库 my_db 打勾即可

修改 Maven 运行环境
如果是 Mac\Linux 就是 otherMavenCommand
如果是 Windows 就是 winMavenCommand
修改 yuzi-generator-maker
com.yupi.maker.generator.JarGenerate#doGenerate
Windows 最后需要是这样

Mac 最后是这样,也就是源码里面的状态

修改 yuzi-generator-web-backend
com.yupi.web.controller.GeneratorController#useGenerator
Windows 最后需要是这样

Mac 最后是这样,也就是源码里面的状态

修改源码 useGenerator 方法
com.yupi.web.controller.GeneratorController#useGenerator
源码对应的部分修改成这样
▼java复制代码// 执行脚本 // 找到脚本文件所在路径 // 要注意,如果不是 windows 系统,找 generator 文件而不是 bat File scriptFile = FileUtil.loopFiles(unzipDistDir, 2, null) .stream() .filter(file -> file.isFile() && "generator".equals(file.getName())) .findFirst() .map(file -> { String os = System.getProperty("os.name").toLowerCase(); return os.contains("win") ? new File(file.getAbsolutePath() + ".bat") : file; }) .orElseThrow(RuntimeException::new);

Install yuzi-generator-maker
Maven --> Lifecycle --> Install

执行成功

出现报错

这个报错原因是因为
Java版本的问题,通过 选择 Java 版本 章节进行设置成 Java8 即可
再次执行 install 命令 ,可以看到成功 BUILD SUCCESS
安装依赖
首先需要配置好本地 Mavne, 和阿里云镜像,要是没有配置的话可以看一下这篇文章

然后可以在 Build 看到正在下载依赖

如果出现这个依赖爆红就证明没有执行上面的 Install yuzi-generator-maker

打包完成之后重新刷新依赖即可

修改配置文件
配置文件在下面项目的 resources 目录

- application.yml 默认是本地运行时生效的配置
- application-prod.yml 当在服务器指定
--spring.profiles.active=prod才会生效,一般写线上配置,比如:线上 MySQL、Redis ... - application-test.yml 当在服务器指定
--spring.profiles.active=test才会生效
1、MySQL
▼yml复制代码spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/my_db # yuapi 是数据库的名称 如果是远程 MySQL 例如: jdbc:mysql://192.129.11.11:3306/my_db username: root # 用户名 password: 123456 # MySQL 设置的密码
2、Redis
▼yml复制代码spring: redis: database: 1 host: localhost # 如果线上改成线上 IP port: 6379 # Redis 具体运行端口,默认安装 6379 timeout: 5000 # password: 123456 # 密码,默认安装没有密码,如果服务器 Redis 有密码就修改
3、COS 相关配置
1)后端配置文件需要
▼yml复制代码# 对象存储 # todo 需替换配置 cos: client: accessKey: xxx secretKey: xxx region: xxx bucket: xxx
注意:这个 **SecretId ** 就是下文中的 SecretId !
官方文档:https://cloud.tencent.com/document/product/436/56390

2)APPID、SecretKey 、SecretId 都是 https://console.cloud.tencent.com/capi 获取的,注意 SecretKey 只能在创建的时候可见,注意保存!

3)host、bucket、region 都在 COS 对象存储那里获取
首先需要创建存储桶,位置 https://console.cloud.tencent.com/cos/bucket



4)获取 host、bucket、region 信息
位置 https://console.cloud.tencent.com/cos/bucket


5、XXL-Job
▼yml复制代码# xxl-job 配置 xxl: job: admin: # xxl-job admin address list, such as "http://address" or "http://address01,http://address02" addresses: http://127.0.0.1:8080/xxl-job-admin # xxl-job, access token accessToken: default_token executor: # xxl-job executor appname appname: yuzi-generator-web-backend # xxl-job executor registry-address: default use address to registry , otherwise use ip:port if address is null address: # xxl-job executor server-info ip: port: 9999 # xxl-job executor log-path logpath: logs/jobhandler # xxl-job executor log-retention-days logretentiondays: 30
如果部署上线,那么就需要把 addresses 变成服务器的线上地址
本地运行

启动报错?
因为本地没有启动 XXL-Job 导致的不用慌

可以访问接口文档地址 http://localhost:8120/api/doc.html 验证是否启动成功

测试功能
前端需要提前启动可以参考 https://www.codefather.cn/post/1909178634762952705
1、后端执行插入测试 SQL
把 INSERT 语句复制到 Query Console 右键选择 「Execute」
完整的 INSERT 语句
▼sql复制代码INSERT INTO my_db.generator (name, description, basePackage, version, author, tags, picture, fileConfig, modelConfig, distPath, status, userId, createTime, updateTime, isDelete) VALUES ( 'acm-template-pro-generator', 'ACM 示例模板生成器', 'com.yupi', '1.0', 'yupi', '["Java"]', 'https://pic.code-nav.cn/migrate_image/f22a0535d56b9513066da1e2ea02fd7c.webp', '{"files":[{"type":"group","condition":"needGit","groupKey":"git","groupName":"开源","files":[{"inputPath":".gitignore","outputPath":".gitignore","type":"file","generateType":"static"},{"inputPath":"README.md","outputPath":"README.md","type":"file","generateType":"static"}]},{"inputPath":"src/com/yupi/acm/MainTemplate.java.ftl","outputPath":"src/com/yupi/acm/MainTemplate.java","type":"file","generateType":"dynamic"}]}', '{"models":[{"fieldName":"needGit","type":"boolean","description":"是否生成 .gitignore 文件","defaultValue":true},{"fieldName":"loop","type":"boolean","description":"是否生成循环","defaultValue":false,"abbr":"l"},{"type":"MainTemplate","description":"用于生成核心模板文件","groupKey":"mainTemplate","groupName":"核心模板","models":[{"fieldName":"author","type":"String","description":"作者注释","defaultValue":"yupi","abbr":"a"},{"fieldName":"outputText","type":"String","description":"输出信息","defaultValue":"sum = ","abbr":"o"}],"condition":"loop"}]}', '/generator_dist/1904820595580289025/7xQuIpqf-acm-template-pro-generator.zip', 0, 1904820595580289025, '2025-03-26 14:24:22', '2025-04-04 17:58:33', 0);
2、创建用户并且在数据库里面把 generator 表里面的 userId 字段改成自己登录 user 的 id 方便后续操作
user 表
generator 表
3、找到 acm-template-pro-generator 会发现有了编辑按钮
4、进行编辑,一直点下一步其他的不用修改,直接到「文件生成器文件」
5、压缩 yuzi-generator-demo-projects\acm-template-pro 上传到「模板文件」一栏
6、上传 src.zip 压缩包
7、上传成功点击 制作 ,成功最后后端会返回一个 zip 压缩包,我们把得到的 zip 上传到 「产物包」一栏
8、找到后端返回的 zip 大小是 4 MB 左右如果太小比如 几 kb 之类的就证明后端生成出现了问题
9、成功之后我们点击 「提交」
10、测试使用
点击生成代码之后,后端会返回一个 zip 我们进行解压查看生成是否有问题
如果出现压缩包格式错误或者生成内容不对就是后端出了问题,可以排查一下后端
11、至此测试成功🤩🤩🤩
启动 XXL-Job (可选)
需要提前安装 Git https://pan.baidu.com/s/1c8w8FPbm-6b7vSS02dSD7w?pwd=7fz9 提取码:7fz9
1、下载 xxl-job 源码
1)方式一 通过命令行
▼text复制代码git clone https://gitee.com/xuxueli0323/xxl-job.git
在想要下载的目录右键 (Win11 shift + 右键)

直接输入命令回车即可
如果之前没有登陆过 Gitee 账号,那么会弹出一个窗口让输入 Gitee 的用户名和密码,成功登录后即可正常下载

2)方式二 直接打开 Gitee 仓库下载源码进行解压


下载之后需要解压,解压之后就可以正常使用
2、使用 IDEA 打开 xxl-job 源码

出现是否 Trust 直接点击 Trust Porject 即可

3、等他下载依赖
如果太慢的话可以配置一下 Maven 镜像 文章

4、创建 xxl_job 数据库 参考上面的 「初始化数据」连接数据库执行初始化 SQL
全选 SQL 文件 Ctrl + A 权限文件右键 execute

选择 Use Default Schema 运行 SQL

执行成功

5、修改配置文件
对应 username 、userpassword 修改成自己本地的数据库的账号密码,url 如果是执行的官方的 SQL 一般不需要修改

6、启动 XxlJobAdminApplication
7、访问管理页面 http://localhost:8080/xxl-job-admin/
- 用户名 admin
- 密码 123456


8、添加执行器

新增任务
这里的 Cron 是测试所以执行间隔比较短源码表达式是
▼cron复制代码0 0 0 * * ?


启动执行器看看效果

验证是否执成功,也可以查看对应日志

制作 + 上传 JAR 包
找到右侧 Maven 选择 Lifecycle -> package 双击

如果报错的话:
- 删除
target目录(IDEA 右键删除即可),重新打包尝试 - Maven -> Lifecyle -> clean
- 退出 IDEA 在
文件管理器找到该项目的.idea文件右键删除 ,然后重新打开 IDEA 重新走一遍流程


部署
后面可以参考这篇文章 『 后端部署(通用) 』

