若依框架二次开发(前后端分离版)-修改项目名

从官网上把前后端分离版ruoyi-vue安装下来后:

一、环境配置

首先,根据若依前后端分离的使用文档来看,环境的配置要求如下:

1.JDK的版本>=1.8

我配置的是21版本的,且要在项目结构中设置Project Structure→Project中的SDK设置21,Language level:8-Lambdas,type annotations etc.

2.Maven >=3.0

我配置的是3.9.5版本的。
在设置里面搜maven或者直接点Build,Execution,Deployment里的Build Tools中的Maven可查看Version为3.9.5。

3.MySQL >=5.7

我配置的是5.7版本的。

用ide打开后找到数据库配置的那个文件(.yml)修改:

端口号:3307 (我自己修改的端口号,一般默认是3306)
url:
jdbc:mysql://localhost:3307/pdms-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 (数据库名也被我修改了pdms-vue)
username: root (根据个人的设置不同而修改)
password: 123

建数据库可在Navicat中直接创建数据库:
新建数据库→数据库名:pdms-vue→字符集:utf8mb4 →排序规则: utf8mb4_general-ci
导入sql文件:右键运行SQL文件→文件导入→开始→取消→刷新查看,导入成功!

4.node.js >=12

我的版本是20.17.0
参考csdn中别人的文章:Node.js安装与配置(详细步骤)_nodejs安装及环境配置-优快云博客

5.Redis >=3

我的版本是20.17.0
参考csdn中别人的文章:超详细Redis下载安装图文教程(Win和Linux版)-优快云博客

启动服务:

redis-server.exe  --service-start --service-name redisserver1

停止服务:

redis-server.exe  --service-stop --service-name redisserver1
 

二、系统运行

先启动后端然后再启动前端。

1.后端启动:直接点编译运行就可以了。

2.前端启动:

打开ide的终端,进入项目目录:
cd ruoyi-ui

# 安装依赖 这个重新做的项目都需要安装!
npm install


# 强烈建议不要用直接使用 cnpm 安装,会有各种诡异的 bug,可以通过重新指定 registry 来解决 npm 安装速度慢的问题。{这小段可以先查询一下npm的镜像路径:npm config get registry
,是下面这句的话就不用输入这段}
npm install --registry=https://registry.npmmirror.com

===============
# 本地开发 启动项目    
npm run dev              
===============

【之后再次启动前端,只需要cd ruoyi-ui→npm run dev两步到位
启动成功后:
登录用户:admin
密码:admin123

三、改父项目名称

1.改父项目名:先rename后close项目且remove然后在文件夹那重命名再打开项目
2.pom.xml:<name></name>名字改了
3.改子项目rouyi-admin 改成 pdms-admin  后面的也是  注意是rename module and directory

四、改子项目里面的包项目【易出错!!!!!!!!!】

先修改pdms-common里包名,从com.ruoyi.common到com.pdms.common
点击这个包,右键Refactor→Rename,ruoyi改成pdms,等待加载。 刷新Maven!

如果有人引这个common的依赖,点击Maven里的Lifecycle中的compile进行全局编译,可以检查【如果有人引用它,它改动了一点,就会报错。】

修改pdms-system的pom.xml中的:
<!-- 通用工具-->
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-common</artifactId>
        </dependency>
改成:
<!-- 通用工具-->
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>pdms-common</artifactId>
        </dependency>

运行看是否出错。

之后修改pdms-system的包名,/pdms-quartz/pdms-generator/pdms-framework/pdms-admin(最后一个是admin)!


=========怎么修复错误?快捷键?==========================

在run里,双击一个有错误的接口impl?复制ctrl+C然后1.【双击shift:搜索关键词的文件在哪】,粘贴,搜索出错点在哪。

2.【ctrl+F】在单个文件中,如.java类中,搜索 关键词。

3.【ctrl+shift+R】 replace in files 替换
4.【ctrl+shift+F】 Find in files 查找

public class KaptchaText...右键包名 Copy/Paste Special →Copy Reference ????
(1 【双击shift】搜“redis”  第三个类:FastJson2JsonRedisSerializer.java
(2 第21行:JSON_WHITELIST_STR 【ctrl点击进入!!!】修改四处地方的ruoyi→pdms

=====================================================================


5.【谨慎修改。也可不改不影响:】修改父工程里的pom.xml中的<groupId>com.ruoyi</groupId>!!!!!!!!!!  第七行
因为子工程都需要改!所以修改:各个子工程的pom.xml里的<groupId>com.pdms</groupId>  第七行以及第22行(指system中的xml)的<groupId>也要修改

(6个子工程都要修改,然后刷新)

修改好子工程的pom.xml之后要记得修改父工程的pom.xml 从第151行开始:修改成<groupId>com.pdms</groupId>五处。以及。把第153行的<version>中的ruoyi修改pdms。可快捷键替换【ctrl+R】单类下的替换不是所有类都替换!!!→replace All
再刷新一下。再运行后端和前端,检查一下界面功能。


6.修改一些ruoyi细节:
【双击shift】:ruoyi点classes:RuoYiConfig.java 点击定位 →refactor→rename→PdmsConfig
再把第12行的 prefix=“pdms" 配置文件
切换到admin的application.yml文件中去。把第二行的ruoyi修改成pdms。第四行的RuoYi修改成PDMS。第十行的路径可以随便改:/pdms  
【第94行的header不要改成token!!!!!!】
然后跑一下。

五、出现的问题bug

BUG:

1.
Caused by: java.lang.RuntimeException: mybatis typeAliasesPackage 路径扫描错误,参数typeAliasesPackage:com.ruoyi.**.domain未找到任何包

修改:
application.yml中第103行的:

# MyBatis配置
mybatis:
  # 搜索指定包别名
  typeAliasesPackage: com.pdms.**.domain

2.
pdms-framework中的config包中的CaptchaConfig修改第66行的ruoyi为pdms


3.
18:27:20.359 [schedule-pool-1] INFO  sys-user - [run,55] - [127.0.0.1]内网IP[admin][Success][登录成功]

18:27:20.492 [http-nio-8080-exec-3] ERROR c.p.f.w.s.TokenService - [getLoginUser,79] - 获取用户信息异常'class com.alibaba.fastjson2.JSONObject cannot be cast to class com.pdms.common.core.domain.model.LoginUser (com.alibaba.fastjson2.JSONObject and com.pdms.common.core.domain.model.LoginUser are in unnamed module of loader org.springframework.boot.devtools.restart.classloader.RestartClassLoader @1a707233)'

18:27:20.512 [http-nio-8080-exec-4] ERROR c.p.f.w.s.TokenService - [getLoginUser,79] - 获取用户信息异常'class com.alibaba.fastjson2.JSONObject cannot be cast to class com.pdms.common.core.domain.model.LoginUser (com.alibaba.fastjson2.JSONObject and com.pdms.common.core.domain.model.LoginUser are in unnamed module of loader org.springframework.boot.devtools.restart.classloader.RestartClassLoader @1a707233)'
 
18:27:28.509 [SpringApplicationShutdownHook] INFO  o.q.c.QuartzScheduler - [standby,585] - Scheduler quartzScheduler_$_NON_CLUSTERED paused.
18:27:28.541 [SpringApplicationShutdownHook] INFO  o.q.c.QuartzScheduler - [shutdown,666] - Scheduler quartzScheduler_$_NON_CLUSTERED shutting down.
18:27:28.541 [SpringApplicationShutdownHook] INFO  o.q.c.QuartzScheduler - [standby,585] - Scheduler quartzScheduler_$_NON_CLUSTERED paused.
18:27:28.541 [SpringApplicationShutdownHook] INFO  o.q.c.QuartzScheduler - [shutdown,740] - Scheduler quartzScheduler_$_NON_CLUSTERED shutdown complete.
18:27:28.541 [SpringApplicationShutdownHook] INFO  sys-user - [shutdownAsyncManager,31] 

无效会话,过期。


修复:
========================================================
(1)关键信息:ctrl+c :TokenService 【双击shift】右Classes查找当前的类
(2)关键信息:79行:json转换的异常问题!在第79行前添加一句,不可删除!:e.printStackTrace();//异常堆栈信息
然后重新启动一下。
即:
catch (Exception e)
            {
                e.printStackTrace();//异常堆栈信息
                log.error("获取用户信息异常'{}'", e.getMessage());
            }
(3)仍出错:(TokenService.java:74)
原因://从redis中获取数据,转成java报错(redis默认返回json,会找他原来的包名下的类,找得到就自动转,找不到就给你json了:不是同一个key)
说明userKey有问题。


(1 【双击shift】搜“redis”  第三个类:FastJson2JsonRedisSerializer.java
(2 第21行:JSON_WHITELIST_STR 【ctrl点击进入!!!】


来到这里{后面四处ruoyi都要修改!!!!!}:

/**
     * 自动识别json对象白名单配置(仅允许解析的包名,范围越小越安全)
     */
    public static final String[] JSON_WHITELIST_STR = { "org.springframework", "com.ruoyi" };
。。。。略写
----------------------------
把第161行和166行和172行的ruoyi修改成pdms:
/**
     * 自动识别json对象白名单配置(仅允许解析的包名,范围越小越安全)
     */
    public static final String[] JSON_WHITELIST_STR = { "org.springframework", "com.pdms" };

    /**
     * 定时任务白名单配置(仅允许访问的包名,如其他需要可以自行添加)
     */
    public static final String[] JOB_WHITELIST_STR = { "com.pdms.quartz.task" };

/**
     * 定时任务违规的字符
     */
    public static final String[] JOB_ERROR_STR = { "java.net.URL", "javax.naming.InitialContext", "org.yaml.snakeyaml",
            "org.springframework", "org.apache", "com.pdms.common.utils.file", "com.pdms.common.config", "com.ruoyi.generator" };
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值