作为一个常年混迹Java圈的老码农,我始终对Eclipse情有独钟。虽然现在IntelliJ IDEA大行其道,但Eclipse的轻量级和高度可定制性,让它依然是很多传统项目的首选。今天我就带大家用这套"复古组合"——Eclipse+Redis+Node.js,来搞定若依(Ruoyi)前后端分离版的开发环境搭建。
首先需要准备以下工具包:
这里有个小技巧:我习惯在D盘根目录创建dev文件夹,把所有开发工具都集中安装在这里。比如我的路径是D:\dev\eclipse、D:\dev\redis、D:\dev\nodejs。这样做环境变量配置时路径清晰,也方便后期管理。
注意:若依前后端分离版需要同时运行Java后端和Node前端,建议电脑内存至少8GB。我曾在4GB内存的机器上尝试,启动Redis后内存直接爆满。
从Gitee克隆若依项目是第一步,但这里有个坑要注意:
bash复制git clone https://gitee.com/y_project/RuoYi-Vue.git
建议不要直接使用master分支,而是切换到最新的稳定tag。我遇到过master分支存在临时bug的情况,切换到v4.7.0版本后一切正常。
数据库配置时,很多人会卡在application-druid.yml文件的修改上。除了修改用户名密码外,还要特别注意这个配置:
yaml复制url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
如果用的是MySQL 8.0+,必须把useSSL=true改为false,否则会报握手错误。这是我踩过最深的坑,整整折腾了一下午才找到原因。
Redis的Windows版安装很简单,但有几个关键点需要注意:
bash复制redis-server.exe redis.windows.conf
bash复制127.0.0.1:6379> set ruoyi test
OK
127.0.0.1:6379> get ruoyi
"test"
在若依的application.yml中,Redis配置项很容易被忽略的是这个:
yaml复制redis:
host: 127.0.0.1
port: 6379
password:
timeout: 3000
如果timeout设置过短,在高并发时会出现Redis响应超时错误。我一般设为3000ms(3秒)比较稳妥。
在Eclipse中导入Maven项目时,有个隐藏技巧:不要直接Import Existing Projects。我推荐的操作步骤是:
这样能避免很多依赖冲突问题。导入后如果看到红色错误,先别慌,试试这几个操作:
运行RuoYiApplication时,建议配置VM参数:
code复制-Dfile.encoding=UTF-8 -Xms256m -Xmx1024m
特别是编码参数,不设置的话控制台日志中文会乱码。内存参数根据自己机器配置调整,我一般给最小256M,最大1G。
如果启动时报端口冲突,修改application.yml中的server.port:
yaml复制server:
port: 8081
servlet:
context-path: /ruoyi
context-path建议保留,避免前端请求路径冲突。
Node.js安装最容易出错的是环境变量配置。我建议:
bash复制node -v
npm -v
code复制PATH中添加:D:\dev\nodejs
新建NODE_PATH:D:\dev\nodejs\node_modules
进入ruoyi-ui目录后,别急着npm install。先做这三件事:
bash复制npm config set registry https://registry.npm.taobao.org
然后执行安装:
bash复制npm install --legacy-peer-deps
这个--legacy-peer-deps参数很重要,能解决很多依赖版本冲突问题。安装完成后,启动时如果报错"sass-loader"相关,试试:
bash复制npm rebuild node-sass
前后端都启动后,访问http://localhost:8080 应该能看到登录页。如果页面空白,检查这几个地方:
ini复制VUE_APP_BASE_API = 'http://localhost:8081'
我遇到最棘手的问题是登录后跳转404,最后发现是前端路由模式问题。修改src/router/index.js:
javascript复制const createRouter = () => new Router({
mode: 'history', // 改为hash可解决
routes: constantRoutes
})
Redis连接超时也是个高频问题,除了调大timeout外,还可以在Redis配置中增加:
ini复制tcp-keepalive 300
这套环境搭建下来,最深的体会是:版本兼容性决定成败。Java 1.8 + Redis 5 + Node 16这个组合是我测试过最稳定的。最近尝试用Node 18就遇到了各种奇怪的依赖冲突,最后还是退回16版才解决。