ELRIWebSystem/代码的编译指导.md

240 lines
8.6 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 代码编译指南
> 更新zhanli@2023.12.17
**目录**
1. 开发环境准备
2. 代码导入
3. 常见问题解决
## 一、开发环境准备
#### 1.1 开发IDE
首先准备好开发工具,前端开发工具使用*webstorm*(下载地址:[https://www.jetbrains.com/webstorm/](https://link.zhihu.com/?target=https%3A//www.jetbrains.com/webstorm/) 后端开发工具使用*IntelliJ IDEA*(下载地址:[https://www.jetbrains.com.cn/idea/](https://link.zhihu.com/?target=https%3A//www.jetbrains.com.cn/idea/)
#### 1.2 JDK的安装
已经安装完开发ide后准备java的环境安装jdk1.8
> 通过百度网盘分享的文件jdk-8u13…exe
> 链接:[https://pan.baidu.com/s/1ZAzN-JBml0cKA9K-YI1erA](https://link.zhihu.com/?target=https%3A//pan.baidu.com/s/1ZAzN-JBml0cKA9K-YI1erA)
> 提取码7yh5
#### 1.3 git安装
下载地址:[https://git-scm.com/download/win](https://link.zhihu.com/?target=https%3A//git-scm.com/download/win)
git的一个代码管理软件
#### 1.4 maven安装
Apache Maven是一个特别是Java编程项目管理及自动构建工具由Apache软件基金会所提供。基于项目对象模型缩写POM概念Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。
百度网盘下载地址
[https://pan.baidu.com/s/1jUfP_wWQ4hwj30CL8AIr8Q?pwd=g254](https://link.zhihu.com/?target=https%3A//pan.baidu.com/s/1jUfP_wWQ4hwj30CL8AIr8Q%3Fpwd%3Dg254)
国外的maven镜像下载慢可以配置阿里云镜像
```xml
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>[http://maven.aliyun.com/nexus/content/groups/public/](https://link.zhihu.com/?target=http%3A//maven.aliyun.com/nexus/content/groups/public/)</url>
</mirror>
```
#### 1.5 `mysql`数据库安装
> 百度网盘链接:[https://pan.baidu.com/s/1NH1NOzILhZpRbGxjDg8IgA](https://link.zhihu.com/?target=https%3A//pan.baidu.com/s/1NH1NOzILhZpRbGxjDg8IgA)
> 提取码ange
> 官网下载:[https://downloads.mysql.com/archives/community/](https://link.zhihu.com/?target=https%3A//downloads.mysql.com/archives/community/)
#### 1.6 `navicat`数据库工具安装
`Navicat` 数据库工具是一个可视化的`MySQL`数据库处理工具,通过图形界面的方式可以非常便捷的处理数据库的导入以及其他操作。
> Navicat Premium 12.1.6下载:
> 链接:[https://pan.baidu.com/s/16CPyQnR72l9661_jWXD7Pw](https://link.zhihu.com/?target=https%3A//pan.baidu.com/s/16CPyQnR72l9661_jWXD7Pw)
> 提取码yj41
#### 1.7 node14版本安装
官网下载地址:[https://nodejs.org/download/release/v14.21.3/](https://link.zhihu.com/?target=https%3A//nodejs.org/download/release/v14.21.3/)
#### 1.8 Redis的安装(windows)
Redis的官方是windows版本所以在官方无法下载到。
> windows版Git下载https://github.com/microsoftarchive/redis/releases
>
> 私人云盘下载:`http://logzhan.ticp.io:52440/GoWeb开发环境安装/Redis-Windows`
>
> 账号uestc 密码 123
>
> 登录后可能进入到管理页面,此时选择主页或者再次粘贴云盘路径均可
启动方式:
```shell
# Git原版在powershell输入执行
.\redis-server.exe redis.windows.conf
# 云盘下载版:
直接运行run.bat即可
```
#### 1.9 准备好环境后,可以下载若依源代码
下载地址:[https://gitee.com/y_project/RuoYi-Vue](https://link.zhihu.com/?target=https%3A//gitee.com/y_project/RuoYi-Vue)
可以通过git来克隆代码也可以直接下载zip压缩包
![img](http://logzhan.ticp.io:30000/logzhan/PictureHost/raw/branch/main/ELRIWebSystem/compile_help/0.png)
## 二、代码导入
#### 2.1 IDE项目导入
打开idea选择open->选择刚才下载的ruoyi代码目录
![img](http://logzhan.ticp.io:30000/logzhan/PictureHost/raw/branch/main/ELRIWebSystem/compile_help/1.png)
导入成功后系统会加载maven依赖包加载完毕如下图
![img](http://logzhan.ticp.io:30000/logzhan/PictureHost/raw/branch/main/ELRIWebSystem/compile_help/2.png)
下面针对上面的模块进行解说:
```shell
ruoyi-admin: 程序启动模块对前端提供restful接口
ruoyi-common: 通用模块,封装公共使用的模块,以后会针对这一块代码进行详细讲解
ruoyi-framework: 架构模块
ruoyi-generator: 代码生成模块
ruoyi-system: 用户权限管理模块
ruoyi-ui: 前端后端分离管理后台vue模块
sql:mysql: 数据库
```
#### 2.2 将项目数据结构导入mysql数据库
打开navicat->新建数据库-》创建一个数据库名称是ry-vue
![img](http://logzhan.ticp.io:30000/logzhan/PictureHost/raw/branch/main/ELRIWebSystem/compile_help/3.png)
导入数据库-〉选择ry-vue数据库执行sql目录下面的数据库脚本
![img](http://logzhan.ticp.io:30000/logzhan/PictureHost/raw/branch/main/ELRIWebSystem/compile_help/4.png)
执行完成后数据库可以看到以下30张表其中sys开头的表是用户权限表qrtz开头的表就是定时程序相关的表
![img](http://logzhan.ticp.io:30000/logzhan/PictureHost/raw/branch/main/ELRIWebSystem/compile_help/5.png)
#### 2.3 webstorm 导入前端工程
webstorm导入后的结构如下图
![img](http://logzhan.ticp.io:30000/logzhan/PictureHost/raw/branch/main/ELRIWebSystem/compile_help/6.png)
需要对项目进行npm进行编译将需要依赖的package引入点击webstorm最底部的termial输入命令
```shell
npm install
```
编译成功后显示如下:
![img](http://logzhan.ticp.io:30000/logzhan/PictureHost/raw/branch/main/ELRIWebSystem/compile_help/7.png)
#### 2.4 启动前端和后端应用
1.启动前端。
如下图点击webstorm的npm展示了一个界面显示dev等命令选择dev-》右键运行
![img](http://logzhan.ticp.io:30000/logzhan/PictureHost/raw/branch/main/ELRIWebSystem/compile_help/8.png)
出现如下图的地址,表示正常启动
![img](http://logzhan.ticp.io:30000/logzhan/PictureHost/raw/branch/main/ELRIWebSystem/compile_help/9.png)
#### 2.5 启动后端
##### 2.5.1 检查连接的数据库是否正常
点击idea如下图的文件查看其中数据库连接的paasword需要修改成为你本地创建数据库的账号密码文件在ruoyi-admin/src/main/resources/application-druid.yml
![img](http://logzhan.ticp.io:30000/logzhan/PictureHost/raw/branch/main/ELRIWebSystem/compile_help/10.png)
##### 2.5.2 需要修改日志文件目录
ruoyi-admin/src/main/resources/logback.xml需要修改
<property name="log.path" value="/home/ruoyi/logs" />
修改为本机的一个有效目录
<property name="log.path" value="./logs" />
![img](http://logzhan.ticp.io:30000/logzhan/PictureHost/raw/branch/main/ELRIWebSystem/compile_help/11.png)
##### 2.5.3 启动应用
启动类 `ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication`
![img](http://logzhan.ticp.io:30000/logzhan/PictureHost/raw/branch/main/ELRIWebSystem/compile_help/12.png)
启动后,日志可以看到如下图,表示后端正常启动:
![img](http://logzhan.ticp.io:30000/logzhan/PictureHost/raw/branch/main/ELRIWebSystem/compile_help/13.png)
##### 2.5.4 本地运行
前后端启动正常后,可以在浏览器打开 http://localhost:1024/login
![img](http://logzhan.ticp.io:30000/logzhan/PictureHost/raw/branch/main/ELRIWebSystem/compile_help/14.png)
输入账号密码登陆后端界面
![img](http://logzhan.ticp.io:30000/logzhan/PictureHost/raw/branch/main/ELRIWebSystem/compile_help/15.png)
## 三、常见问题解决
#### 3.1 前端Vue报错
```
Vue 报错error:0308010C:digital envelope routines::unsupported
```
主要是因为 nodeJs V17 版本发布了 OpenSSL3.0 对算法和秘钥大小增加了更为严格的限制nodeJs v17 之前版本没影响,但 V17 和之后版本会出现这个错误。 我的[node版本](https://so.csdn.net/so/search?q=node版本&spm=1001.2101.3001.7020)是v18+。
解决方式(仅限 windows:
在项目中 package.json 的 scripts 中新增 SET NODE_OPTIONS=--openssl-legacy-provider添加前
```xml
"scripts": {
"dev": "vue-cli-service serve",
"build:prod": "vue-cli-service build"
},
```
添加后:
```xml
"scripts": {
"dev": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
"build:prod": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build"
},
```
#### 3.2 启动报错
```shell
Error creating bean with name 'captchaController': Unsatisfied dependency expressed through field 'configService';
```
原因因为没有启动Redis启动Redis即可。