1. 前置场景
IDEA2020.2.1(Ultimate Edition)
jdk-10.0.2 jre-10.0.2
nodejs-12.18.4 npm-6.14.6
git version 2.15.0.windows.1
MySQL数据库
Redis数据库
2.代码下载
https://gitee.com/y_project/RuoYi-Vue
(1)使用git从官方代码仓库下载代码
(2)代码下载完毕后,用Idea打开如下:
3.修改配置
(1)MySQL数据库配置:修改为你自己的数据库配置信息
(2)Redis数据库配置:修改为你自己的Redis缓存数据库信息
(3)Maven配置检查:在Idea中检查Maven配置
(4)Node配置检查:在Idea中检查Node.js和npm的配置(是你安装的)
4.构建编译
(1)使用Maven下载项目(后端)依赖包:
(2)使用NPM工具下载项目(前端)依赖包:
方式1
方式2或直接使用Idea的功能
以上两种途径都可以下载前端依赖包。
5.程序运行
5.1执行数据脚本
在MySQL数据库中,创建需要的数据库对象。Quartz.sql和ry_20201128.sql这两个脚本都要执行。以Quartz.sql为例子:
执行完上述两个SQL语句后,数据库结构如下:
备注:此处使用了Idea的数据链接插件,提前将数据链接,否在需要将.sql文件拷贝到数据库中执行。插件如下:
5.2启动后端程序
5.3启动前端程序
5.4初次尝试登陆(错误处理)
错误1
登陆验证码后,点击【登陆】按钮会报如下错误:nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
(1)报错内容
(2)错误原因:
JAXB API是java EE 的API,在java SE 9.0 中不再包含这个 Jar 包。 JDK 9 中引入了模块的概念,默认情况下,Java SE中将不再包含java EE 的Jar包,在 JDK 6/7 / 8 时关于这个API 都是捆绑在一起的。
(3)解决方法:
方法1:降低JDK版本至JDK8,然后重新编译后台程序。
方法2:修改[ruoyi-admin]项目下的pom.xml文件,在dependencies中引入以下部件:
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-core</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
然后,通过Maven更新项目依赖项,再重新启动后端代码。一切ok