代码生成器后端本地运行&部署

环境准备

本地启动

设置 Maven 完成 https://www.codefather.cn/post/1836689783992958977

使用 IDEA 打开项目 yuzi-generator-makeryuzi-generator-web-backend

image-20250320182956366

选择 Java 版本

  • yuzi-generator-maker 设置成 Java8

  • yuzi-generator-web-backend 设置为 Java 17

image-20241101132905013 image-20250326094208820

没有的话可以使用下面的 Download JDK

image-20241114112524129

选择 Java 17

image-20250326094026471
  • 本地没有 JDK 可以直接 Download JDK
  • 本地有 JDK 但是没识别到 Add JDK from disk 选着对应目录即可
  • 选择 Java >= 11 建议 17

初始化数据

连接本地 MySQL

image-20241030155405801

image-20241030155543228

点击 Download 下载 driver files

image-20241030155613559

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

image-20241030155950071

打开 yuzi-generator-web-backend 找到根目录 sql 目录下面的 create_table.sql

如果有下面这个黄色的条 选择 Use MySQL 即可

image-20250327111427260

image-20250326142126969

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

image-20250326142357523

选择 Use Default Schema 运行 SQL

image-20250326142427089

执行成功之后的情况

image-20250326142533282

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

image-20250326145433234

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

image-20250326160725623

修改 Maven 运行环境

如果是 Mac\Linux 就是 otherMavenCommand

如果是 Windows 就是 winMavenCommand

修改 yuzi-generator-maker

com.yupi.maker.generator.JarGenerate#doGenerate

Windows 最后需要是这样

image-20250512164514520

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

image-20250512164331928

修改 yuzi-generator-web-backend

com.yupi.web.controller.GeneratorController#useGenerator

Windows 最后需要是这样

image-20250512170053041

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

image-20250512164807696

修改源码 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);

image-20250512232941485

Install yuzi-generator-maker

Maven --> Lifecycle --> Install

image-20250326161455268

执行成功

image-20250326161538343


出现报错

image-20250216173350355

这个报错原因是因为 Java 版本的问题,通过 选择 Java 版本 章节进行设置成 Java8 即可

再次执行 install 命令 ,可以看到成功 BUILD SUCCESS

安装依赖

首先需要配置好本地 Mavne, 和阿里云镜像,要是没有配置的话可以看一下这篇文章

image-20241112134330112

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

image-20241101132248226


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

image-20250326162325904

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

image-20250326162513108

修改配置文件

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

image-20241101133355503

  • 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

image-20250207143131932

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

image-20250207143248159

3)host、bucket、region 都在 COS 对象存储那里获取

首先需要创建存储桶,位置 https://console.cloud.tencent.com/cos/bucket

image-20241215221117299

image-20241215221153704

image-20241215221217471

4)获取 host、bucket、region 信息

位置 https://console.cloud.tencent.com/cos/bucket

image-20241215225126493

image-20241215223740852

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 变成服务器的线上地址

本地运行

image-20250326171243971

启动报错?

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

image-20250326171338808

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

image-20250326171632284

测试功能

前端需要提前启动可以参考 https://www.codefather.cn/post/1909178634762952705

1、后端执行插入测试 SQL

image.png

把 INSERT 语句复制到 Query Console 右键选择 「Execute」

image.png

完整的 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 表

image.png

generator 表

image-20250407171357143

3、找到 acm-template-pro-generator 会发现有了编辑按钮

image-20250407171459358

4、进行编辑,一直点下一步其他的不用修改,直接到「文件生成器文件」

image-20250407171720787

5、压缩 yuzi-generator-demo-projects\acm-template-pro 上传到「模板文件」一栏

image-20250407172141796

6、上传 src.zip 压缩包

image-20250407172226850

7、上传成功点击 制作 ,成功最后后端会返回一个 zip 压缩包,我们把得到的 zip 上传到 「产物包」一栏

image-20250407172306406

8、找到后端返回的 zip 大小是 4 MB 左右如果太小比如 几 kb 之类的就证明后端生成出现了问题

image-20250407172647923

9、成功之后我们点击 「提交」

image-20250407172843040

10、测试使用

image-20250407172922706 image-20250407172956672

点击生成代码之后,后端会返回一个 zip 我们进行解压查看生成是否有问题

如果出现压缩包格式错误或者生成内容不对就是后端出了问题,可以排查一下后端

image-20250407173213473

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 + 右键)

image-20250327104207431

直接输入命令回车即可

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

image-20250327104255496

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

image-20250326171953985

image-20250326172007927

下载之后需要解压,解压之后就可以正常使用

2、使用 IDEA 打开 xxl-job 源码

image-20250327105234220

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

image-20250327105305551

3、等他下载依赖

如果太慢的话可以配置一下 Maven 镜像 文章

image-20250327110513469

4、创建 xxl_job 数据库 参考上面的 「初始化数据」连接数据库执行初始化 SQL

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

image-20250327111648915

选择 Use Default Schema 运行 SQL

image-20250327111729533

执行成功

image-20250327111847242

5、修改配置文件

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

image-20250327112003138

6、启动 XxlJobAdminApplication

image-20250327130910810

7、访问管理页面 http://localhost:8080/xxl-job-admin/

  • 用户名 admin
  • 密码 123456

image-20250327132049037

image-20250327131019256

8、添加执行器

image-20250327132302202

新增任务

这里的 Cron 是测试所以执行间隔比较短源码表达式是

cron
复制代码
0 0 0 * * ?

image-20250327132511921

image-20250327133732544

启动执行器看看效果

image-20250327133850063

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

image-20250327134028241

制作 + 上传 JAR 包

找到右侧 Maven 选择 Lifecycle -> package 双击

image-20250216215421414


如果报错的话:

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

image-20240928104016670

image-20240928104101415

部署

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

相关专栏

0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
leikooo
下载 APP