@ -0,0 +1 @@ |
|||||
|
*.sql linguist-language=java |
@ -0,0 +1,25 @@ |
|||||
|
碰到问题,请在 <https://gitee.com/zhijiantianya/ruoyi-vue-pro/issues> 搜索是否存在相似的 issue。 |
||||
|
|
||||
|
不按照模板提交的 issue,会被系统自动删除。 |
||||
|
|
||||
|
### 基本信息 |
||||
|
|
||||
|
- ruoyi-vue-pro 版本: |
||||
|
- 操作系统: |
||||
|
- 数据库: |
||||
|
|
||||
|
### 你猜测可能的原因 |
||||
|
|
||||
|
(必填)我花费了 2-4 小时自查,发现可能的原因是:xxxxxx |
||||
|
|
||||
|
### 复现步骤 |
||||
|
|
||||
|
第一步, |
||||
|
|
||||
|
第二步, |
||||
|
|
||||
|
第三步, |
||||
|
|
||||
|
### 报错信息 |
||||
|
|
||||
|
带上必要的截图 |
@ -0,0 +1,34 @@ |
|||||
|
--- |
||||
|
name: 问题反馈 |
||||
|
about: 请详细描述,以便更高快的获得到解决 |
||||
|
title: '' |
||||
|
labels: '' |
||||
|
assignees: '' |
||||
|
|
||||
|
--- |
||||
|
|
||||
|
碰到问题,请在 <https://github.com/YunaiV/ruoyi-vue-pro/issues> 搜索是否存在相似的 issue。 |
||||
|
|
||||
|
不按照模板提交的 issue,会被系统自动删除。 |
||||
|
|
||||
|
### 基本信息 |
||||
|
|
||||
|
- ruoyi-vue-pro 版本: |
||||
|
- 操作系统: |
||||
|
- 数据库: |
||||
|
|
||||
|
### 你猜测可能的原因 |
||||
|
|
||||
|
(必填)我花费了 2-4 小时自查,发现可能的原因是:xxxxxx |
||||
|
|
||||
|
### 复现步骤 |
||||
|
|
||||
|
第一步, |
||||
|
|
||||
|
第二步, |
||||
|
|
||||
|
第三步, |
||||
|
|
||||
|
### 报错信息 |
||||
|
|
||||
|
带上必要的截图 |
@ -0,0 +1,30 @@ |
|||||
|
# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time |
||||
|
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven |
||||
|
|
||||
|
name: Java CI with Maven |
||||
|
|
||||
|
on: |
||||
|
push: |
||||
|
branches: [ master ] |
||||
|
# pull_request: |
||||
|
# branches: [ master ] |
||||
|
|
||||
|
jobs: |
||||
|
build: |
||||
|
|
||||
|
runs-on: ubuntu-latest |
||||
|
|
||||
|
strategy: |
||||
|
matrix: |
||||
|
java: [ '8', '11', '17' ] |
||||
|
|
||||
|
steps: |
||||
|
- uses: actions/checkout@v2 |
||||
|
- name: Set up JDK ${{ matrix.Java }} |
||||
|
uses: actions/setup-java@v2 |
||||
|
with: |
||||
|
java-version: ${{ matrix.java }} |
||||
|
distribution: 'temurin' |
||||
|
cache: maven |
||||
|
- name: Build with Maven |
||||
|
run: mvn -B package --file pom.xml -Dmaven.test.skip=true |
@ -0,0 +1,51 @@ |
|||||
|
name: yudao-ui-admin CI |
||||
|
|
||||
|
# 在master分支发生push事件时触发。 |
||||
|
on: |
||||
|
push: |
||||
|
branches: [ master ] |
||||
|
# pull_request: |
||||
|
# branches: [ master ] |
||||
|
env: # 设置环境变量 |
||||
|
TZ: Asia/Shanghai # 时区(设置时区可使页面中的`最近更新时间`使用时区时间) |
||||
|
WORK_DIR: yudao-ui-admin #工作目录 |
||||
|
|
||||
|
defaults: |
||||
|
run: |
||||
|
shell: bash |
||||
|
working-directory: yudao-ui-admin |
||||
|
|
||||
|
jobs: |
||||
|
build: # 自定义名称 |
||||
|
runs-on: ubuntu-latest # 运行在虚拟机环境ubuntu-latest |
||||
|
|
||||
|
strategy: |
||||
|
matrix: |
||||
|
node_version: [14.x, 16.x] |
||||
|
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/ |
||||
|
|
||||
|
steps: |
||||
|
- name: Checkout # 步骤1 |
||||
|
uses: actions/checkout@v2 # 使用的动作。格式:userName/repoName。作用:检出仓库,获取源码。 官方actions库:https://github.com/actions |
||||
|
|
||||
|
- name: Install pnpm |
||||
|
uses: pnpm/action-setup@v2.0.1 |
||||
|
with: |
||||
|
version: 6.15.1 |
||||
|
|
||||
|
- name: Set node version to ${{ matrix.node_version }} |
||||
|
uses: actions/setup-node@v2 |
||||
|
with: |
||||
|
node-version: ${{ matrix.node_version }} |
||||
|
cache: "yarn" |
||||
|
cache-dependency-path: yudao-ui-admin/yarn.lock |
||||
|
|
||||
|
- name: Install deps |
||||
|
run: node --version && yarn --version && yarn install |
||||
|
|
||||
|
- name: Build |
||||
|
run: yarn build:prod |
||||
|
|
||||
|
# 查看 workflow 的文档来获取更多信息 |
||||
|
# @see https://github.com/crazy-max/ghaction-github-pages |
||||
|
|
@ -0,0 +1,51 @@ |
|||||
|
###################################################################### |
||||
|
# Build Tools |
||||
|
|
||||
|
.gradle |
||||
|
/build/ |
||||
|
!gradle/wrapper/gradle-wrapper.jar |
||||
|
|
||||
|
target/ |
||||
|
!.mvn/wrapper/maven-wrapper.jar |
||||
|
|
||||
|
###################################################################### |
||||
|
# IDE |
||||
|
|
||||
|
### STS ### |
||||
|
.apt_generated |
||||
|
.classpath |
||||
|
.factorypath |
||||
|
.project |
||||
|
.settings |
||||
|
.springBeans |
||||
|
|
||||
|
### IntelliJ IDEA ### |
||||
|
.idea |
||||
|
*.iws |
||||
|
*.iml |
||||
|
*.ipr |
||||
|
|
||||
|
### NetBeans ### |
||||
|
nbproject/private/ |
||||
|
build/* |
||||
|
nbbuild/ |
||||
|
dist/ |
||||
|
nbdist/ |
||||
|
.nb-gradle/ |
||||
|
|
||||
|
###################################################################### |
||||
|
# Others |
||||
|
*.log |
||||
|
*.xml.versionsBackup |
||||
|
*.swp |
||||
|
|
||||
|
!*/build/*.java |
||||
|
!*/build/*.html |
||||
|
!*/build/*.xml |
||||
|
|
||||
|
### JRebel ### |
||||
|
rebel.xml |
||||
|
|
||||
|
application-my.yaml |
||||
|
|
||||
|
/yudao-ui-app/unpackage/ |
After Width: | Height: | Size: 115 KiB |
After Width: | Height: | Size: 142 KiB |
After Width: | Height: | Size: 152 KiB |
After Width: | Height: | Size: 68 KiB |
After Width: | Height: | Size: 65 KiB |
After Width: | Height: | Size: 98 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 37 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 63 KiB |
After Width: | Height: | Size: 9.7 KiB |
After Width: | Height: | Size: 28 KiB |
After Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 7.3 KiB |
After Width: | Height: | Size: 42 KiB |
After Width: | Height: | Size: 142 KiB |
After Width: | Height: | Size: 108 KiB |
After Width: | Height: | Size: 89 KiB |
After Width: | Height: | Size: 161 KiB |
After Width: | Height: | Size: 154 KiB |
After Width: | Height: | Size: 132 KiB |
After Width: | Height: | Size: 83 KiB |
After Width: | Height: | Size: 89 KiB |
After Width: | Height: | Size: 53 KiB |
After Width: | Height: | Size: 120 KiB |
After Width: | Height: | Size: 89 KiB |
After Width: | Height: | Size: 94 KiB |
After Width: | Height: | Size: 134 KiB |
After Width: | Height: | Size: 90 KiB |
After Width: | Height: | Size: 99 KiB |
After Width: | Height: | Size: 93 KiB |
After Width: | Height: | Size: 93 KiB |
After Width: | Height: | Size: 59 KiB |
After Width: | Height: | Size: 176 KiB |
After Width: | Height: | Size: 91 KiB |
After Width: | Height: | Size: 87 KiB |
After Width: | Height: | Size: 33 KiB |
After Width: | Height: | Size: 41 KiB |
After Width: | Height: | Size: 45 KiB |
After Width: | Height: | Size: 114 KiB |
After Width: | Height: | Size: 208 KiB |
After Width: | Height: | Size: 50 KiB |
After Width: | Height: | Size: 113 KiB |
After Width: | Height: | Size: 87 KiB |
After Width: | Height: | Size: 114 KiB |
After Width: | Height: | Size: 116 KiB |
After Width: | Height: | Size: 103 KiB |
After Width: | Height: | Size: 173 KiB |
After Width: | Height: | Size: 125 KiB |
After Width: | Height: | Size: 125 KiB |
After Width: | Height: | Size: 148 KiB |
After Width: | Height: | Size: 137 KiB |
After Width: | Height: | Size: 82 KiB |
After Width: | Height: | Size: 118 KiB |
After Width: | Height: | Size: 93 KiB |
After Width: | Height: | Size: 79 KiB |
After Width: | Height: | Size: 43 KiB |
After Width: | Height: | Size: 248 KiB |
After Width: | Height: | Size: 104 KiB |
After Width: | Height: | Size: 96 KiB |
After Width: | Height: | Size: 115 KiB |
After Width: | Height: | Size: 114 KiB |
After Width: | Height: | Size: 144 KiB |
After Width: | Height: | Size: 118 KiB |
After Width: | Height: | Size: 110 KiB |
After Width: | Height: | Size: 78 KiB |
After Width: | Height: | Size: 92 KiB |
After Width: | Height: | Size: 96 KiB |
After Width: | Height: | Size: 117 KiB |
After Width: | Height: | Size: 118 KiB |
After Width: | Height: | Size: 101 KiB |
After Width: | Height: | Size: 141 KiB |
After Width: | Height: | Size: 146 KiB |
After Width: | Height: | Size: 67 KiB |
@ -0,0 +1,49 @@ |
|||||
|
# Docker Build & Up |
||||
|
|
||||
|
目标: 快速部署体验系统,帮助了解系统之间的依赖关系。 |
||||
|
依赖:docker compose v2,删除`name: yudao-system`,降低`version`版本为`3.3`以下,支持`docker-compose`。 |
||||
|
|
||||
|
## 功能文件列表 |
||||
|
|
||||
|
```text |
||||
|
. |
||||
|
├── Docker-HOWTO.md |
||||
|
├── docker-compose.yml |
||||
|
├── docker.env <-- 提供docker-compose环境变量配置 |
||||
|
├── yudao-server |
||||
|
│ └── Dockerfile |
||||
|
└── yudao-ui-admin |
||||
|
├── .dockerignore |
||||
|
├── Dockerfile |
||||
|
└── nginx.conf <-- 提供基础配置,gzip压缩、api转发 |
||||
|
``` |
||||
|
|
||||
|
## 构建 jar 包 |
||||
|
|
||||
|
```shell |
||||
|
# 创建maven缓存volume |
||||
|
docker volume create --name yudao-maven-repo |
||||
|
|
||||
|
docker run -it --rm --name yudao-maven \ |
||||
|
-v yudao-maven-repo:/root/.m2 \ |
||||
|
-v $PWD:/usr/src/mymaven \ |
||||
|
-w /usr/src/mymaven \ |
||||
|
maven mvn clean install package '-Dmaven.test.skip=true' |
||||
|
``` |
||||
|
|
||||
|
## 构建启动服务 |
||||
|
|
||||
|
```shell |
||||
|
docker compose --env-file docker.env up -d |
||||
|
``` |
||||
|
|
||||
|
首次运行会自动构建容器。可以通过`docker compose build [service]`来手动构建所有或某个docker镜像 |
||||
|
|
||||
|
`--env-file docker.env`为可选参数,只是展示了通过`.env`文件配置容器启动的环境变量,`docker-compose.yml`本身已经提供足够的默认参数来正常运行系统。 |
||||
|
|
||||
|
## 服务器的宿主机端口映射 |
||||
|
|
||||
|
- admin ui: http://localhost:8080 |
||||
|
- api server: http://localhost:48080 |
||||
|
- mysql: root/123456, port: 3306 |
||||
|
- redis: port: 6379 |
@ -0,0 +1,60 @@ |
|||||
|
#!groovy |
||||
|
pipeline { |
||||
|
|
||||
|
agent any |
||||
|
|
||||
|
parameters { |
||||
|
string(name: 'TAG_NAME', defaultValue: '', description: '') |
||||
|
} |
||||
|
|
||||
|
environment { |
||||
|
// DockerHub 凭证 ID(登录您的 DockerHub) |
||||
|
DOCKER_CREDENTIAL_ID = 'dockerhub-id' |
||||
|
// GitHub 凭证 ID (推送 tag 到 GitHub 仓库) |
||||
|
GITHUB_CREDENTIAL_ID = 'github-id' |
||||
|
// kubeconfig 凭证 ID (访问接入正在运行的 Kubernetes 集群) |
||||
|
KUBECONFIG_CREDENTIAL_ID = 'demo-kubeconfig' |
||||
|
// 镜像的推送 |
||||
|
REGISTRY = 'docker.io' |
||||
|
// DockerHub 账号名 |
||||
|
DOCKERHUB_NAMESPACE = 'docker_username' |
||||
|
// GitHub 账号名 |
||||
|
GITHUB_ACCOUNT = 'https://gitee.com/zhijiantianya/ruoyi-vue-pro' |
||||
|
// 应用名称 |
||||
|
APP_NAME = 'yudao-server' |
||||
|
// 应用部署路径 |
||||
|
APP_DEPLOY_BASE_DIR = '/media/pi/KINGTON/data/work/projects/' |
||||
|
} |
||||
|
|
||||
|
stages { |
||||
|
stage('检出') { |
||||
|
steps { |
||||
|
git url: "https://gitee.com/will-we/ruoyi-vue-pro.git", |
||||
|
branch: "devops" |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
stage('构建') { |
||||
|
steps { |
||||
|
// TODO 解决多环境链接、密码不同配置临时方案 |
||||
|
sh 'if [ ! -d "' + "${env.HOME}" + '/resources" ];then\n' + |
||||
|
' echo "配置文件不存在无需修改"\n' + |
||||
|
'else\n' + |
||||
|
' cp -rf ' + "${env.HOME}" + '/resources/*.yaml ' + "${env.APP_NAME}" + '/src/main/resources\n' + |
||||
|
' echo "配置文件替换"\n' + |
||||
|
'fi' |
||||
|
sh 'mvn clean package -Dmaven.test.skip=true' |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
stage('部署') { |
||||
|
steps { |
||||
|
sh 'cp -f ' + ' bin/deploy.sh ' + "${env.APP_DEPLOY_BASE_DIR}" + "${env.APP_NAME}" |
||||
|
sh 'cp -f ' + "${env.APP_NAME}" + '/target/*.jar ' + "${env.APP_DEPLOY_BASE_DIR}" + "${env.APP_NAME}" +'/build/' |
||||
|
archiveArtifacts "${env.APP_NAME}" + '/target/*.jar' |
||||
|
sh 'chmod +x ' + "${env.APP_DEPLOY_BASE_DIR}" + "${env.APP_NAME}" + '/deploy.sh' |
||||
|
sh 'bash ' + "${env.APP_DEPLOY_BASE_DIR}" + "${env.APP_NAME}" + '/deploy.sh' |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,20 @@ |
|||||
|
The MIT License (MIT) |
||||
|
|
||||
|
Copyright (c) 2021 ruoyi-vue-pro |
||||
|
|
||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of |
||||
|
this software and associated documentation files (the "Software"), to deal in |
||||
|
the Software without restriction, including without limitation the rights to |
||||
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of |
||||
|
the Software, and to permit persons to whom the Software is furnished to do so, |
||||
|
subject to the following conditions: |
||||
|
|
||||
|
The above copyright notice and this permission notice shall be included in all |
||||
|
copies or substantial portions of the Software. |
||||
|
|
||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS |
||||
|
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR |
||||
|
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER |
||||
|
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
||||
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
@ -0,0 +1,332 @@ |
|||||
|
**严肃声明:现在、未来都不会有商业版本,所有代码全部开源!!** |
||||
|
|
||||
|
**「我喜欢写代码,乐此不疲」** |
||||
|
**「我喜欢做开源,以此为乐」** |
||||
|
|
||||
|
我 🐶 在上海艰苦奋斗,早中晚在 top3 大厂认真搬砖,夜里为开源做贡献。 |
||||
|
|
||||
|
如果这个项目让你有所收获,记得 Star 关注哦,这对我是非常不错的鼓励与支持。 |
||||
|
|
||||
|
## 🐶 新手必读 |
||||
|
|
||||
|
* 演示地址【Vue3 + element-plus】:<http://dashboard-vue3.yudao.iocoder.cn> |
||||
|
* 演示地址【Vue3 + vben(ant-design-vue)】:<http://dashboard-vben.yudao.iocoder.cn> |
||||
|
* 演示地址【Vue2 + element-ui】:<http://dashboard.yudao.iocoder.cn> |
||||
|
* 启动文档:<https://doc.iocoder.cn/quick-start/> |
||||
|
* 视频教程:<https://doc.iocoder.cn/video/> |
||||
|
|
||||
|
## 🐯 平台简介 |
||||
|
|
||||
|
**芋道**,以开发者为中心,打造中国第一流的快速开发平台,全部开源,个人与企业可 100% 免费使用。 |
||||
|
|
||||
|
> 有任何问题,或者想要的功能,可以在 _Issues_ 中提给艿艿。 |
||||
|
> |
||||
|
> 😜 给项目点点 Star 吧,这对我们真的很重要! |
||||
|
|
||||
|
 |
||||
|
|
||||
|
* 管理后台的电脑端:Vue3 提供 [element-plus](https://gitee.com/yudaocode/yudao-ui-admin-vue3)、[vben(ant-design-vue)](https://gitee.com/yudaocode/yudao-ui-admin-vben) 两个版本,Vue2 提供 [element-ui](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/master/yudao-ui-admin) 版本 |
||||
|
* 管理后台的移动端:采用 [uni-app](https://github.com/dcloudio/uni-app) 方案,一份代码多终端适配,同时支持 APP、小程序、H5! |
||||
|
* 后端采用 Spring Boot 多模块架构、MySQL + MyBatis Plus、Redis + Redisson |
||||
|
* 数据库可使用 MySQL、Oracle、PostgreSQL、SQL Server、MariaDB、国产达梦 DM、TiDB 等 |
||||
|
* 权限认证使用 Spring Security & Token & Redis,支持多终端、多种用户的认证系统,支持 SSO 单点登录 |
||||
|
* 支持加载动态权限菜单,按钮级别权限控制,本地缓存提升性能 |
||||
|
* 支持 SaaS 多租户,可自定义每个租户的权限,提供透明化的多租户底层封装 |
||||
|
* 工作流使用 Flowable,支持动态表单、在线设计流程、会签 / 或签、多种任务分配方式 |
||||
|
* 高效率开发,使用代码生成器可以一键生成前后端代码 + 单元测试 + Swagger 接口文档 + Validator 参数校验 |
||||
|
* 集成微信小程序、微信公众号、企业微信、钉钉等三方登陆,集成支付宝、微信等支付与退款 |
||||
|
* 集成阿里云、腾讯云等短信渠道,集成 MinIO、阿里云、腾讯云、七牛云等云存储服务 |
||||
|
* 集成报表设计器、大屏设计器,通过拖拽即可生成酷炫的报表与大屏 |
||||
|
|
||||
|
## 🐳 项目关系 |
||||
|
|
||||
|
 |
||||
|
|
||||
|
三个项目的功能对比,可见社区共同整理的 [国产开源项目对比](https://www.yuque.com/xiatian-bsgny/lm0ec1/wqf8mn) 表格。 |
||||
|
|
||||
|
### 后端项目 |
||||
|
|
||||
|
|
||||
|
| 项目 | Star | 简介 | |
||||
|
|-----------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------| |
||||
|
| [ruoyi-vue-pro](https://gitee.com/zhijiantianya/ruoyi-vue-pro) | [](https://gitee.com/zhijiantianya/ruoyi-vue-pro) [](https://github.com/YunaiV/ruoyi-vue-pro) | 基于 Spring Boot 多模块架构 | |
||||
|
| [yudao-cloud](https://gitee.com/zhijiantianya/yudao-cloud) | [](https://gitee.com/zhijiantianya/yudao-cloud) [](https://github.com/YunaiV/yudao-cloud) | 基于 Spring Cloud 微服务架构 | |
||||
|
| [Spring-Boot-Labs](https://gitee.com/yudaocode/SpringBoot-Labs) | [](https://gitee.com/zhijiantianya/yudao-cloud) [](https://github.com/yudaocode/SpringBoot-Labs) | 系统学习 Spring Boot & Cloud 专栏 | |
||||
|
|
||||
|
### 前端项目 |
||||
|
|
||||
|
| 项目 | Star | 简介 | |
||||
|
|----------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------| |
||||
|
| [yudao-ui-admin-vue3](https://gitee.com/yudaocode/yudao-ui-admin-vue3) | [](https://gitee.com/yudaocode/yudao-ui-admin-vue3) [](https://github.com/yudaocode/yudao-ui-admin-vue3) | 基于 Vue3 + element-plus 实现的管理后台 | |
||||
|
| [yudao-ui-admin-vben](https://gitee.com/yudaocode/yudao-ui-admin-vben) | [](https://gitee.com/yudaocode/yudao-ui-admin-vben) [](https://github.com/yudaocode/yudao-ui-admin-vben) | 基于 Vue3 + vben(ant-design-vue) 实现的管理后台 | |
||||
|
| [yudao-ui-admin](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/master/yudao-ui-admin) | [](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/master/yudao-ui-admin) [](https://github.com/YunaiV/ruoyi-vue-pro/tree/master/yudao-ui-admin) | 基于 Vue2 + element-ui 实现的管理后台 | |
||||
|
| [yudao-ui-admin-uniapp](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/master/yudao-ui-admin-uniapp) | [](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/master/yudao-ui-admin-uniapp) [](https://github.com/YunaiV/ruoyi-vue-pro/tree/master/yudao-ui-admin-uniapp) | 基于 uni-app + uni-ui 实现的管理后台的小程序 | |
||||
|
| [yudao-ui-go-view](https://gitee.com/yudaocode/yudao-ui-go-view) | [](https://gitee.com/yudaocode/yudao-ui-go-view) [](https://github.com/yudaocode/yudao-ui-go-view) | 基于 Vue3 + naive-ui 实现的大屏报表 | |
||||
|
| [yudao-ui-app](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/master/yudao-ui-app) | [](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/master/yudao-ui-app) [](https://github.com/YunaiV/ruoyi-vue-pro/tree/master/yudao-ui-app) | 基于 uni-app + uview 实现的用户 App | |
||||
|
|
||||
|
## 🐰 分支说明 |
||||
|
|
||||
|
| | JDK 8 完整版 | JDK 8 精简版 | JDK 17 完整版 | |
||||
|
|-------|-----------------------------------------------------------|--------------------------------------------------------------------|-----------------------------------------------------------------------------| |
||||
|
| 分支 | [`master`](https://gitee.com/zhijiantianya/ruoyi-vue-pro) | [`mini`](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/mini/) | [`boot-dev`](https://gitee.com/zhijiantianya/ruoyi-vue-pro/tree/boot3-dev/) | |
||||
|
| 说明 | 包括所有功能 | 只保留核心功能 | 适配 Spring Boot 3.X | |
||||
|
| 系统功能 | √ | √ | √ | |
||||
|
| 基础设施 | √ | √ | √ | |
||||
|
| 会员中心 | √ | √ | √ | |
||||
|
| 工作流程 | √ | x | 适配中 | |
||||
|
| 数据报表 | √ | x | 适配中 | |
||||
|
| 商城系统 | √ | x | √ | |
||||
|
| 微信公众号 | √ | x | √ | |
||||
|
|
||||
|
## 😎 开源协议 |
||||
|
|
||||
|
**为什么推荐使用本项目?** |
||||
|
|
||||
|
① 本项目采用比 Apache 2.0 更宽松的 [MIT License](https://gitee.com/zhijiantianya/ruoyi-vue-pro/blob/master/LICENSE) 开源协议,个人与企业可 100% 免费使用,不用保留类作者、Copyright 信息。 |
||||
|
|
||||
|
② 代码全部开源,不会像其他项目一样,只开源部分代码,让你无法了解整个项目的架构设计。[国产开源项目对比](https://www.yuque.com/xiatian-bsgny/lm0ec1/wqf8mn) |
||||
|
|
||||
|
 |
||||
|
|
||||
|
③ 代码整洁、架构整洁,遵循《阿里巴巴 Java 开发手册》规范,代码注释详细,57000 行 Java 代码,22000 行代码注释。 |
||||
|
|
||||
|
## 🤝 项目外包 |
||||
|
|
||||
|
我们也是接外包滴,如果你有项目想要外包,可以微信联系【**Aix9975**】。 |
||||
|
|
||||
|
团队包含专业的项目经理、架构师、前端工程师、后端工程师、测试工程师、运维工程师,可以提供全流程的外包服务。 |
||||
|
|
||||
|
项目可以是商城、SCRM 系统、OA 系统、物流系统、ERP 系统、CMS 系统、HIS 系统、支付系统、IM 聊天、微信公众号、微信小程序等等。 |
||||
|
|
||||
|
## 🐼 内置功能 |
||||
|
|
||||
|
系统内置多种多种业务功能,可以用于快速你的业务系统: |
||||
|
|
||||
|
 |
||||
|
|
||||
|
* 系统功能 |
||||
|
* 基础设施 |
||||
|
* 工作流程 |
||||
|
* 支付系统 |
||||
|
* 会员中心 |
||||
|
* 数据报表 |
||||
|
* 商城系统 |
||||
|
* 微信公众号 |
||||
|
|
||||
|
> 友情提示:本项目基于 RuoYi-Vue 修改,**重构优化**后端的代码,**美化**前端的界面。 |
||||
|
> |
||||
|
> * 额外新增的功能,我们使用 🚀 标记。 |
||||
|
> * 重新实现的功能,我们使用 ⭐️ 标记。 |
||||
|
|
||||
|
🙂 所有功能,都通过 **单元测试** 保证高质量。 |
||||
|
|
||||
|
### 系统功能 |
||||
|
|
||||
|
| | 功能 | 描述 | |
||||
|
|-----|-------|---------------------------------| |
||||
|
| | 用户管理 | 用户是系统操作者,该功能主要完成系统用户配置 | |
||||
|
| ⭐️ | 在线用户 | 当前系统中活跃用户状态监控,支持手动踢下线 | |
||||
|
| | 角色管理 | 角色菜单权限分配、设置角色按机构进行数据范围权限划分 | |
||||
|
| | 菜单管理 | 配置系统菜单、操作权限、按钮权限标识等,本地缓存提供性能 | |
||||
|
| | 部门管理 | 配置系统组织机构(公司、部门、小组),树结构展现支持数据权限 | |
||||
|
| | 岗位管理 | 配置系统用户所属担任职务 | |
||||
|
| 🚀 | 租户管理 | 配置系统租户,支持 SaaS 场景下的多租户功能 | |
||||
|
| 🚀 | 租户套餐 | 配置租户套餐,自定每个租户的菜单、操作、按钮的权限 | |
||||
|
| | 字典管理 | 对系统中经常使用的一些较为固定的数据进行维护 | |
||||
|
| 🚀 | 短信管理 | 短信渠道、短息模板、短信日志,对接阿里云、腾讯云等主流短信平台 | |
||||
|
| 🚀 | 邮件管理 | 邮箱账号、邮件模版、邮件发送日志,支持所有邮件平台 | |
||||
|
| 🚀 | 站内信 | 系统内的消息通知,提供站内信模版、站内信消息 | |
||||
|
| 🚀 | 操作日志 | 系统正常操作日志记录和查询,集成 Swagger 生成日志内容 | |
||||
|
| ⭐️ | 登录日志 | 系统登录日志记录查询,包含登录异常 | |
||||
|
| 🚀 | 错误码管理 | 系统所有错误码的管理,可在线修改错误提示,无需重启服务 | |
||||
|
| | 通知公告 | 系统通知公告信息发布维护 | |
||||
|
| 🚀 | 敏感词 | 配置系统敏感词,支持标签分组 | |
||||
|
| 🚀 | 应用管理 | 管理 SSO 单点登录的应用,支持多种 OAuth2 授权方式 | |
||||
|
| 🚀 | 地区管理 | 展示省份、城市、区镇等城市信息,支持 IP 对应城市 | |
||||
|
|
||||
|
### 工作流程 |
||||
|
|
||||
|
| | 功能 | 描述 | |
||||
|
|-----|-------|----------------------------------------| |
||||
|
| 🚀 | 流程模型 | 配置工作流的流程模型,支持文件导入与在线设计流程图,提供 7 种任务分配规则 | |
||||
|
| 🚀 | 流程表单 | 拖动表单元素生成相应的工作流表单,覆盖 Element UI 所有的表单组件 | |
||||
|
| 🚀 | 用户分组 | 自定义用户分组,可用于工作流的审批分组 | |
||||
|
| 🚀 | 我的流程 | 查看我发起的工作流程,支持新建、取消流程等操作,高亮流程图、审批时间线 | |
||||
|
| 🚀 | 待办任务 | 查看自己【未】审批的工作任务,支持通过、不通过、转发、委派、退回等操作 | |
||||
|
| 🚀 | 已办任务 | 查看自己【已】审批的工作任务,未来会支持回退操作 | |
||||
|
| 🚀 | OA 请假 | 作为业务自定义接入工作流的使用示例,只需创建请求对应的工作流程,即可进行审批 | |
||||
|
|
||||
|
### 支付系统 |
||||
|
|
||||
|
| | 功能 | 描述 | |
||||
|
|-----|------|---------------------------| |
||||
|
| 🚀 | 应用信息 | 配置商户的应用信息,对接支付宝、微信等多个支付渠道 | |
||||
|
| 🚀 | 支付订单 | 查看用户发起的支付宝、微信等的【支付】订单 | |
||||
|
| 🚀 | 退款订单 | 查看用户发起的支付宝、微信等的【退款】订单 | |
||||
|
| 🚀 | 回调通知 | 查看支付回调业务的【支付】【退款】的通知结果 | |
||||
|
| 🚀 | 接入示例 | 提供接入支付系统的【支付】【退款】的功能实战 | |
||||
|
|
||||
|
### 基础设施 |
||||
|
|
||||
|
| | 功能 | 描述 | |
||||
|
|-----|----------|----------------------------------------------| |
||||
|
| 🚀 | 代码生成 | 前后端代码的生成(Java、Vue、SQL、单元测试),支持 CRUD 下载 | |
||||
|
| 🚀 | 系统接口 | 基于 Swagger 自动生成相关的 RESTful API 接口文档 | |
||||
|
| 🚀 | 数据库文档 | 基于 Screw 自动生成数据库文档,支持导出 Word、HTML、MD 格式 | |
||||
|
| | 表单构建 | 拖动表单元素生成相应的 HTML 代码,支持导出 JSON、Vue 文件 | |
||||
|
| 🚀 | 配置管理 | 对系统动态配置常用参数,支持 SpringBoot 加载 | |
||||
|
| ⭐️ | 定时任务 | 在线(添加、修改、删除)任务调度包含执行结果日志 | |
||||
|
| 🚀 | 文件服务 | 支持将文件存储到 S3(MinIO、阿里云、腾讯云、七牛云)、本地、FTP、数据库等 | |
||||
|
| 🚀 | API 日志 | 包括 RESTful API 访问日志、异常日志两部分,方便排查 API 相关的问题 | |
||||
|
| | MySQL 监控 | 监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈 | |
||||
|
| | Redis 监控 | 监控 Redis 数据库的使用情况,使用的 Redis Key 管理 | |
||||
|
| 🚀 | 消息队列 | 基于 Redis 实现消息队列,Stream 提供集群消费,Pub/Sub 提供广播消费 | |
||||
|
| 🚀 | Java 监控 | 基于 Spring Boot Admin 实现 Java 应用的监控 | |
||||
|
| 🚀 | 链路追踪 | 接入 SkyWalking 组件,实现链路追踪 | |
||||
|
| 🚀 | 日志中心 | 接入 SkyWalking 组件,实现日志中心 | |
||||
|
| 🚀 | 分布式锁 | 基于 Redis 实现分布式锁,满足并发场景 | |
||||
|
| 🚀 | 幂等组件 | 基于 Redis 实现幂等组件,解决重复请求问题 | |
||||
|
| 🚀 | 服务保障 | 基于 Resilience4j 实现服务的稳定性,包括限流、熔断等功能 | |
||||
|
| 🚀 | 日志服务 | 轻量级日志中心,查看远程服务器的日志 | |
||||
|
| 🚀 | 单元测试 | 基于 JUnit + Mockito 实现单元测试,保证功能的正确性、代码的质量等 | |
||||
|
|
||||
|
### 数据报表 |
||||
|
|
||||
|
| | 功能 | 描述 | |
||||
|
|-----|-------|--------------------| |
||||
|
| 🚀 | 报表设计器 | 支持数据报表、图形报表、打印设计等 | |
||||
|
| 🚀 | 大屏设计器 | 拖拽生成数据大屏,内置几十种图表组件 | |
||||
|
|
||||
|
### 微信公众号 |
||||
|
|
||||
|
| | 功能 | 描述 | |
||||
|
|-----|--------|-------------------------------| |
||||
|
| 🚀 | 账号管理 | 配置接入的微信公众号,可支持多个公众号 | |
||||
|
| 🚀 | 数据统计 | 统计公众号的用户增减、累计用户、消息概况、接口分析等数据 | |
||||
|
| 🚀 | 粉丝管理 | 查看已关注、取关的粉丝列表,可对粉丝进行同步、打标签等操作 | |
||||
|
| 🚀 | 消息管理 | 查看粉丝发送的消息列表,可主动回复粉丝消息 | |
||||
|
| 🚀 | 自动回复 | 自动回复粉丝发送的消息,支持关注回复、消息回复、关键字回复 | |
||||
|
| 🚀 | 标签管理 | 对公众号的标签进行创建、查询、修改、删除等操作 | |
||||
|
| 🚀 | 菜单管理 | 自定义公众号的菜单,也可以从公众号同步菜单 | |
||||
|
| 🚀 | 素材管理 | 管理公众号的图片、语音、视频等素材,支持在线播放语音、视频 | |
||||
|
| 🚀 | 图文草稿箱 | 新增常用的图文素材到草稿箱,可发布到公众号 | |
||||
|
| 🚀 | 图文发表记录 | 查看已发布成功的图文素材,支持删除操作 | |
||||
|
|
||||
|
### 商城系统 |
||||
|
|
||||
|
建设中... |
||||
|
|
||||
|
 |
||||
|
|
||||
|
 |
||||
|
|
||||
|
 |
||||
|
|
||||
|
### 会员中心 |
||||
|
|
||||
|
和「商城系统」一起开发 |
||||
|
|
||||
|
## 🐨 技术栈 |
||||
|
|
||||
|
### 模块 |
||||
|
|
||||
|
| 项目 | 说明 | |
||||
|
|--------------------------------------------------------------------------|--------------------| |
||||
|
| `yudao-dependencies` | Maven 依赖版本管理 | |
||||
|
| `yudao-framework` | Java 框架拓展 | |
||||
|
| `yudao-server` | 管理后台 + 用户 APP 的服务端 | |
||||
|
| `yudao-module-system` | 系统功能的 Module 模块 | |
||||
|
| `yudao-module-member` | 会员中心的 Module 模块 | |
||||
|
| `yudao-module-infra` | 基础设施的 Module 模块 | |
||||
|
| `yudao-module-bpm` | 工作流程的 Module 模块 | |
||||
|
| `yudao-module-pay` | 支付系统的 Module 模块 | |
||||
|
| `yudao-module-mall` | 商城系统的 Module 模块 | |
||||
|
| `yudao-module-mp` | 微信公众号的 Module 模块 | |
||||
|
| `yudao-module-report` | 大屏报表 Module 模块 | |
||||
|
|
||||
|
### 框架 |
||||
|
|
||||
|
| 框架 | 说明 | 版本 | 学习指南 | |
||||
|
|---------------------------------------------------------------------------------------------|------------------|-------------|----------------------------------------------------------------| |
||||
|
| [Spring Boot](https://spring.io/projects/spring-boot) | 应用开发框架 | 2.7.14 | [文档](https://github.com/YunaiV/SpringBoot-Labs) | |
||||
|
| [MySQL](https://www.mysql.com/cn/) | 数据库服务器 | 5.7 / 8.0+ | | |
||||
|
| [Druid](https://github.com/alibaba/druid) | JDBC 连接池、监控组件 | 1.2.18 | [文档](http://www.iocoder.cn/Spring-Boot/datasource-pool/?yudao) | |
||||
|
| [MyBatis Plus](https://mp.baomidou.com/) | MyBatis 增强工具包 | 3.5.3.1 | [文档](http://www.iocoder.cn/Spring-Boot/MyBatis/?yudao) | |
||||
|
| [Dynamic Datasource](https://dynamic-datasource.com/) | 动态数据源 | 3.6.1 | [文档](http://www.iocoder.cn/Spring-Boot/datasource-pool/?yudao) | |
||||
|
| [Redis](https://redis.io/) | key-value 数据库 | 5.0 / 6.0 | | |
||||
|
| [Redisson](https://github.com/redisson/redisson) | Redis 客户端 | 3.18.0 | [文档](http://www.iocoder.cn/Spring-Boot/Redis/?yudao) | |
||||
|
| [Spring MVC](https://github.com/spring-projects/spring-framework/tree/master/spring-webmvc) | MVC 框架 | 5.3.24 | [文档](http://www.iocoder.cn/SpringMVC/MVC/?yudao) | |
||||
|
| [Spring Security](https://github.com/spring-projects/spring-security) | Spring 安全框架 | 5.7.6 | [文档](http://www.iocoder.cn/Spring-Boot/Spring-Security/?yudao) | |
||||
|
| [Hibernate Validator](https://github.com/hibernate/hibernate-validator) | 参数校验组件 | 6.2.5 | [文档](http://www.iocoder.cn/Spring-Boot/Validation/?yudao) | |
||||
|
| [Flowable](https://github.com/flowable/flowable-engine) | 工作流引擎 | 6.8.0 | [文档](https://doc.iocoder.cn/bpm/) | |
||||
|
| [Quartz](https://github.com/quartz-scheduler) | 任务调度组件 | 2.3.2 | [文档](http://www.iocoder.cn/Spring-Boot/Job/?yudao) | |
||||
|
| [Springdoc](https://springdoc.org/) | Swagger 文档 | 1.6.15 | [文档](http://www.iocoder.cn/Spring-Boot/Swagger/?yudao) | |
||||
|
| [Resilience4j](https://github.com/resilience4j/resilience4j) | 服务保障组件 | 1.7.1 | [文档](http://www.iocoder.cn/Spring-Boot/Resilience4j/?yudao) | |
||||
|
| [SkyWalking](https://skywalking.apache.org/) | 分布式应用追踪系统 | 8.12.0 | [文档](http://www.iocoder.cn/Spring-Boot/SkyWalking/?yudao) | |
||||
|
| [Spring Boot Admin](https://github.com/codecentric/spring-boot-admin) | Spring Boot 监控平台 | 2.7.10 | [文档](http://www.iocoder.cn/Spring-Boot/Admin/?yudao) | |
||||
|
| [Jackson](https://github.com/FasterXML/jackson) | JSON 工具库 | 2.13.3 | | |
||||
|
| [MapStruct](https://mapstruct.org/) | Java Bean 转换 | 1.5.5.Final | [文档](http://www.iocoder.cn/Spring-Boot/MapStruct/?yudao) | |
||||
|
| [Lombok](https://projectlombok.org/) | 消除冗长的 Java 代码 | 1.18.28 | [文档](http://www.iocoder.cn/Spring-Boot/Lombok/?yudao) | |
||||
|
| [JUnit](https://junit.org/junit5/) | Java 单元测试框架 | 5.8.2 | - | |
||||
|
| [Mockito](https://github.com/mockito/mockito) | Java Mock 框架 | 4.8.0 | - | |
||||
|
|
||||
|
## 🐷 演示图 |
||||
|
|
||||
|
### 系统功能 |
||||
|
|
||||
|
| 模块 | biu | biu | biu | |
||||
|
|----------|-----------------------------|---------------------------|--------------------------| |
||||
|
| 登录 & 首页 |  |  |  | |
||||
|
| 用户 & 应用 |  |  |  | |
||||
|
| 租户 & 套餐 |  |  | - | |
||||
|
| 部门 & 岗位 |  |  | - | |
||||
|
| 菜单 & 角色 |  |  | - | |
||||
|
| 审计日志 |  |  | - | |
||||
|
| 短信 |  |  |  | |
||||
|
| 字典 & 敏感词 |  |  |  | |
||||
|
| 错误码 & 通知 |  |  | - | |
||||
|
|
||||
|
### 工作流程 |
||||
|
|
||||
|
| 模块 | biu | biu | biu | |
||||
|
|---------|---------------------------------|---------------------------------|---------------------------------| |
||||
|
| 流程模型 |  |  |  | |
||||
|
| 表单 & 分组 |  |  | - | |
||||
|
| 我的流程 |  |  |  | |
||||
|
| 待办 & 已办 |  |  |  | |
||||
|
| OA 请假 |  |  |  | |
||||
|
|
||||
|
### 基础设施 |
||||
|
|
||||
|
| 模块 | biu | biu | biu | |
||||
|
|---------------|-------------------------------|-----------------------------|---------------------------| |
||||
|
| 代码生成 |  |  | - | |
||||
|
| 文档 |  |  | - | |
||||
|
| 文件 & 配置 |  |  |  | |
||||
|
| 定时任务 |  |  | - | |
||||
|
| API 日志 |  |  | - | |
||||
|
| MySQL & Redis |  |  | - | |
||||
|
| 监控平台 |  |  |  | |
||||
|
|
||||
|
### 支付系统 |
||||
|
|
||||
|
| 模块 | biu | biu | biu | |
||||
|
|---------|---------------------------|---------------------------------|---------------------------------| |
||||
|
| 商家 & 应用 |  |  |  | |
||||
|
| 支付 & 退款 |  |  | --- | |
||||
|
### 数据报表 |
||||
|
|
||||
|
| 模块 | biu | biu | biu | |
||||
|
|-------|---------------------------------|---------------------------------|---------------------------------------| |
||||
|
| 报表设计器 |  |  |  | |
||||
|
| 大屏设计器 |  |  |  | |
||||
|
|
||||
|
### 移动端(管理后台) |
||||
|
|
||||
|
| biu | biu | biu | |
||||
|
|----------------------------------|----------------------------------|----------------------------------| |
||||
|
|  |  |  | |
||||
|
|  |  |  | |
||||
|
|  |  |  | |
||||
|
|
||||
|
目前已经实现登录、我的、工作台、编辑资料、头像修改、密码修改、常见问题、关于我们等基础功能。 |
@ -0,0 +1,160 @@ |
|||||
|
#!/bin/bash |
||||
|
set -e |
||||
|
|
||||
|
DATE=$(date +%Y%m%d%H%M) |
||||
|
# 基础路径 |
||||
|
BASE_PATH=/work/projects/yudao-server |
||||
|
# 编译后 jar 的地址。部署时,Jenkins 会上传 jar 包到该目录下 |
||||
|
SOURCE_PATH=$BASE_PATH/build |
||||
|
# 服务名称。同时约定部署服务的 jar 包名字也为它。 |
||||
|
SERVER_NAME=yudao-server |
||||
|
# 环境 |
||||
|
PROFILES_ACTIVE=development |
||||
|
# 健康检查 URL |
||||
|
HEALTH_CHECK_URL=http://127.0.0.1:48080/actuator/health/ |
||||
|
|
||||
|
# heapError 存放路径 |
||||
|
HEAP_ERROR_PATH=$BASE_PATH/heapError |
||||
|
# JVM 参数 |
||||
|
JAVA_OPS="-Xms512m -Xmx512m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$HEAP_ERROR_PATH" |
||||
|
|
||||
|
# SkyWalking Agent 配置 |
||||
|
#export SW_AGENT_NAME=$SERVER_NAME |
||||
|
#export SW_AGENT_COLLECTOR_BACKEND_SERVICES=192.168.0.84:11800 |
||||
|
#export SW_GRPC_LOG_SERVER_HOST=192.168.0.84 |
||||
|
#export SW_AGENT_TRACE_IGNORE_PATH="Redisson/PING,/actuator/**,/admin/**" |
||||
|
#export JAVA_AGENT=-javaagent:/work/skywalking/apache-skywalking-apm-bin/agent/skywalking-agent.jar |
||||
|
|
||||
|
# 备份 |
||||
|
function backup() { |
||||
|
# 如果不存在,则无需备份 |
||||
|
if [ ! -f "$BASE_PATH/$SERVER_NAME.jar" ]; then |
||||
|
echo "[backup] $BASE_PATH/$SERVER_NAME.jar 不存在,跳过备份" |
||||
|
# 如果存在,则备份到 backup 目录下,使用时间作为后缀 |
||||
|
else |
||||
|
echo "[backup] 开始备份 $SERVER_NAME ..." |
||||
|
cp $BASE_PATH/$SERVER_NAME.jar $BASE_PATH/backup/$SERVER_NAME-$DATE.jar |
||||
|
echo "[backup] 备份 $SERVER_NAME 完成" |
||||
|
fi |
||||
|
} |
||||
|
|
||||
|
# 最新构建代码 移动到项目环境 |
||||
|
function transfer() { |
||||
|
echo "[transfer] 开始转移 $SERVER_NAME.jar" |
||||
|
|
||||
|
# 删除原 jar 包 |
||||
|
if [ ! -f "$BASE_PATH/$SERVER_NAME.jar" ]; then |
||||
|
echo "[transfer] $BASE_PATH/$SERVER_NAME.jar 不存在,跳过删除" |
||||
|
else |
||||
|
echo "[transfer] 移除 $BASE_PATH/$SERVER_NAME.jar 完成" |
||||
|
rm $BASE_PATH/$SERVER_NAME.jar |
||||
|
fi |
||||
|
|
||||
|
# 复制新 jar 包 |
||||
|
echo "[transfer] 从 $SOURCE_PATH 中获取 $SERVER_NAME.jar 并迁移至 $BASE_PATH ...." |
||||
|
cp $SOURCE_PATH/$SERVER_NAME.jar $BASE_PATH |
||||
|
|
||||
|
echo "[transfer] 转移 $SERVER_NAME.jar 完成" |
||||
|
} |
||||
|
|
||||
|
# 停止:优雅关闭之前已经启动的服务 |
||||
|
function stop() { |
||||
|
echo "[stop] 开始停止 $BASE_PATH/$SERVER_NAME" |
||||
|
PID=$(ps -ef | grep $BASE_PATH/$SERVER_NAME | grep -v "grep" | awk '{print $2}') |
||||
|
# 如果 Java 服务启动中,则进行关闭 |
||||
|
if [ -n "$PID" ]; then |
||||
|
# 正常关闭 |
||||
|
echo "[stop] $BASE_PATH/$SERVER_NAME 运行中,开始 kill [$PID]" |
||||
|
kill -15 $PID |
||||
|
# 等待最大 120 秒,直到关闭完成。 |
||||
|
for ((i = 0; i < 120; i++)) |
||||
|
do |
||||
|
sleep 1 |
||||
|
PID=$(ps -ef | grep $BASE_PATH/$SERVER_NAME | grep -v "grep" | awk '{print $2}') |
||||
|
if [ -n "$PID" ]; then |
||||
|
echo -e ".\c" |
||||
|
else |
||||
|
echo '[stop] 停止 $BASE_PATH/$SERVER_NAME 成功' |
||||
|
break |
||||
|
fi |
||||
|
done |
||||
|
|
||||
|
# 如果正常关闭失败,那么进行强制 kill -9 进行关闭 |
||||
|
if [ -n "$PID" ]; then |
||||
|
echo "[stop] $BASE_PATH/$SERVER_NAME 失败,强制 kill -9 $PID" |
||||
|
kill -9 $PID |
||||
|
fi |
||||
|
# 如果 Java 服务未启动,则无需关闭 |
||||
|
else |
||||
|
echo "[stop] $BASE_PATH/$SERVER_NAME 未启动,无需停止" |
||||
|
fi |
||||
|
} |
||||
|
|
||||
|
# 启动:启动后端项目 |
||||
|
function start() { |
||||
|
# 开启启动前,打印启动参数 |
||||
|
echo "[start] 开始启动 $BASE_PATH/$SERVER_NAME" |
||||
|
echo "[start] JAVA_OPS: $JAVA_OPS" |
||||
|
echo "[start] JAVA_AGENT: $JAVA_AGENT" |
||||
|
echo "[start] PROFILES: $PROFILES_ACTIVE" |
||||
|
|
||||
|
# 开始启动 |
||||
|
BUILD_ID=dontKillMe nohup java -server $JAVA_OPS $JAVA_AGENT -jar $BASE_PATH/$SERVER_NAME.jar --spring.profiles.active=$PROFILES_ACTIVE & |
||||
|
echo "[start] 启动 $BASE_PATH/$SERVER_NAME 完成" |
||||
|
} |
||||
|
|
||||
|
# 健康检查:自动判断后端项目是否正常启动 |
||||
|
function healthCheck() { |
||||
|
# 如果配置健康检查,则进行健康检查 |
||||
|
if [ -n "$HEALTH_CHECK_URL" ]; then |
||||
|
# 健康检查最大 120 秒,直到健康检查通过 |
||||
|
echo "[healthCheck] 开始通过 $HEALTH_CHECK_URL 地址,进行健康检查"; |
||||
|
for ((i = 0; i < 120; i++)) |
||||
|
do |
||||
|
# 请求健康检查地址,只获取状态码。 |
||||
|
result=`curl -I -m 10 -o /dev/null -s -w %{http_code} $HEALTH_CHECK_URL || echo "000"` |
||||
|
# 如果状态码为 200,则说明健康检查通过 |
||||
|
if [ "$result" == "200" ]; then |
||||
|
echo "[healthCheck] 健康检查通过"; |
||||
|
break |
||||
|
# 如果状态码非 200,则说明未通过。sleep 1 秒后,继续重试 |
||||
|
else |
||||
|
echo -e ".\c" |
||||
|
sleep 1 |
||||
|
fi |
||||
|
done |
||||
|
|
||||
|
# 健康检查未通过,则异常退出 shell 脚本,不继续部署。 |
||||
|
if [ ! "$result" == "200" ]; then |
||||
|
echo "[healthCheck] 健康检查不通过,可能部署失败。查看日志,自行判断是否启动成功"; |
||||
|
tail -n 10 nohup.out |
||||
|
exit 1; |
||||
|
# 健康检查通过,打印最后 10 行日志,可能部署的人想看下日志。 |
||||
|
else |
||||
|
tail -n 10 nohup.out |
||||
|
fi |
||||
|
# 如果未配置健康检查,则 sleep 120 秒,人工看日志是否部署成功。 |
||||
|
else |
||||
|
echo "[healthCheck] HEALTH_CHECK_URL 未配置,开始 sleep 120 秒"; |
||||
|
sleep 120 |
||||
|
echo "[healthCheck] sleep 120 秒完成,查看日志,自行判断是否启动成功"; |
||||
|
tail -n 50 nohup.out |
||||
|
fi |
||||
|
} |
||||
|
|
||||
|
# 部署 |
||||
|
function deploy() { |
||||
|
cd $BASE_PATH |
||||
|
# 备份原 jar |
||||
|
backup |
||||
|
# 停止 Java 服务 |
||||
|
stop |
||||
|
# 部署新 jar |
||||
|
transfer |
||||
|
# 启动 Java 服务 |
||||
|
start |
||||
|
# 健康检查 |
||||
|
healthCheck |
||||
|
} |
||||
|
|
||||
|
deploy |
@ -0,0 +1,25 @@ |
|||||
|
-----BEGIN CERTIFICATE----- |
||||
|
MIIEKDCCAxCgAwIBAgIUPBUY5gEW0fegik4XV3G6n1lkKOMwDQYJKoZIhvcNAQEL |
||||
|
BQAwXjELMAkGA1UEBhMCQ04xEzARBgNVBAoTClRlbnBheS5jb20xHTAbBgNVBAsT |
||||
|
FFRlbnBheS5jb20gQ0EgQ2VudGVyMRswGQYDVQQDExJUZW5wYXkuY29tIFJvb3Qg |
||||
|
Q0EwHhcNMjMwODA2MDkwNDI2WhcNMjgwODA0MDkwNDI2WjCBgTETMBEGA1UEAwwK |
||||
|
MTY1MDIzODg1OTEbMBkGA1UECgwS5b6u5L+h5ZWG5oi357O757ufMS0wKwYDVQQL |
||||
|
DCTlub/opb/or5fnjqXllYbotLjmnInpmZDotKPku7vlhazlj7gxCzAJBgNVBAYM |
||||
|
AkNOMREwDwYDVQQHDAhTaGVuWmhlbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC |
||||
|
AQoCggEBALcWCdgGfecd+l0u7Lsb66Db9j/1lof2p8FMIw6nwMgpvNrZdB/1bLU5 |
||||
|
03caoSAYDdZ+vJWOCR9j/GsZ3nPHX2zkK/vbNMSgSraO+L4g/8jGbmPh5juKt6zu |
||||
|
b1V+rzTJbkQaRzsIywtn0DPT4RfpcBs5DQcr8eJsqNcd7tVik05XoGMNfnhtVvI7 |
||||
|
Vb6Kjl+LlyGn5mtqygscWgJJ0Q/i5C5wl0jbgeEDtcs1SdOY2nHtPzC8uKCoZpOR |
||||
|
e220QK2/HAXoxg7aHucNMwquoyquo7Lgrfsp3LsJ/Re0NSCCT0XNvEuLeZE1CqA3 |
||||
|
7YlvZPyePui/H9RG4+rLvIro4UM+Mt0CAwEAAaOBuTCBtjAJBgNVHRMEAjAAMAsG |
||||
|
A1UdDwQEAwID+DCBmwYDVR0fBIGTMIGQMIGNoIGKoIGHhoGEaHR0cDovL2V2Y2Eu |
||||
|
aXRydXMuY29tLmNuL3B1YmxpYy9pdHJ1c2NybD9DQT0xQkQ0MjIwRTUwREJDMDRC |
||||
|
MDZBRDM5NzU0OTg0NkMwMUMzRThFQkQyJnNnPUhBQ0M0NzFCNjU0MjJFMTJCMjdB |
||||
|
OUQzM0E4N0FEMUNERjU5MjZFMTQwMzcxMA0GCSqGSIb3DQEBCwUAA4IBAQCKSLmG |
||||
|
GicWDVWmZHkF3V0U9yvQTkxXS7ApW3OgJC51n7zOVwBN6k5V4HcLEUAauIJgk60V |
||||
|
5KnZRyK4r7xDsdHWWXyLd1Litar0HYli8gjkRjl6Tg8x/S6DZlBO0jW/K7t/k9xU |
||||
|
HKeA5c/FitQChJrIdGeB/T90WhJrrdsGf/1UvzpGNIjtROCPnM23iTs79O+TeSNh |
||||
|
tb7UKW0VqaIYEB4oG/ojewwmkrxv5Hcdf8Y8A6TNvg66yDUAUiKiz2cAEOWbaLiC |
||||
|
phz0l7yjeFGohZf3ZWIUTDdDneIgl1nNBN5RjnHCy6oPW+OlBsJjWArm+b7evX+/ |
||||
|
zJFAgiwbwp75/UaA |
||||
|
-----END CERTIFICATE----- |
@ -0,0 +1,28 @@ |
|||||
|
-----BEGIN PRIVATE KEY----- |
||||
|
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC3FgnYBn3nHfpd |
||||
|
Luy7G+ug2/Y/9ZaH9qfBTCMOp8DIKbza2XQf9Wy1OdN3GqEgGA3WfryVjgkfY/xr |
||||
|
Gd5zx19s5Cv72zTEoEq2jvi+IP/Ixm5j4eY7ires7m9Vfq80yW5EGkc7CMsLZ9Az |
||||
|
0+EX6XAbOQ0HK/HibKjXHe7VYpNOV6BjDX54bVbyO1W+io5fi5chp+ZrasoLHFoC |
||||
|
SdEP4uQucJdI24HhA7XLNUnTmNpx7T8wvLigqGaTkXtttECtvxwF6MYO2h7nDTMK |
||||
|
rqMqrqOy4K37Kdy7Cf0XtDUggk9FzbxLi3mRNQqgN+2Jb2T8nj7ovx/URuPqy7yK |
||||
|
6OFDPjLdAgMBAAECggEAOy4kgG+Ywtwt0XEZlGGyCI0RTBtWTRytnQ2/Rz1yU0Eq |
||||
|
ipM/thTezrWiZR12d6lOz8anrq/6wurO7M+v2DzZ25jlnsN8ixJFFD2iqdKA26VI |
||||
|
iYC7qwNr27o2wqvwdl+mBN15qNtuxoEIC7ixSclrM2F9lJPf3BDDgsVqLg9vDiM4 |
||||
|
95I0101zItJHqicolvj7wnglKR9qMQGdA944kcZ3sLmWxg+G/xFjHzPCiADVXeOy |
||||
|
7milOiAF7Qz2E6ImsFk81Ck9nqBQMh56MFAS7Y7a6u1rBN8D3Elg42a7pLQT2dG0 |
||||
|
oaRDpk/B+Fjax7NnM8KwY6qnjZWpzEaSemJzd8iQAQKBgQDc6lloNCp7kcBNdy4d |
||||
|
+1z1JYcjjdP6yTiuJacIQc69AA5XM7WXl3QzpwS4dprk9Tsl60ZFsAtCEONJ3X1S |
||||
|
IMs9NDvngF1ouwlhsVkkdvzEylLwrJoS9QetbeDDuuCmZBllJCtzcPv2z7RQkKYm |
||||
|
Im68QWh2CalBT6v5KQA6VA5KjQKBgQDUKa4i6b56HebL/t4lZIzDS++OpRMYiIOZ |
||||
|
O9LHc5nW2kJzIdVShZeaTa10BlQ58xygZmLgWDAXNFZfkwP0g6wrnJ+Bpt/qipSv |
||||
|
I9gpp69ytKJbP77cZGYdn63xpT+GrvqL5huDSoa0li8UdSJlDLmDvKrUbEr76W2B |
||||
|
oXZn+IQdkQKBgDdrjxxmIdY4HU8Ru/8HhS12ya0wsmIywsZlab7Xi368mdxke4TZ |
||||
|
GOywVK3WC0uu/bSojkuDO3/KbsqkBwFoerQS+4g7GrPgYB0i+aL9OrI/s4jvNAPX |
||||
|
dqKacw2HPz5e1EQcS849JOio+KpRb20XrEIMAqHCELTywMjT8VuwpJktAoGATjxc |
||||
|
eYVmdxOlsx31/yX3/mB3I0veIdLdbFkyHdiUJzVvAZO9XWPkBsOULc/TqVbr/H4l |
||||
|
AgOjIDttimrlL3qKt75W13GY6p1VvMvj/2BVg1/26t0z3YOsYEos04oTRfAqdgJR |
||||
|
rPWDfP5QuCOFnmu10U12VUTl1cU7W20WA7sRxPECgYBZzoDQaHqrt7XYIr0MFkQ6 |
||||
|
3SLgKCEl0scuGvnk7bNp3ndPDY3+2kv5yQcwzbMJ9OcrgyeCvWlGLVMv0IL3yxeO |
||||
|
5U7szjFEf6A0e0IanY4qbUs+1gwAB0L8HdKKFexnP7k3j3oC2tJQSUD0XuCPdW1Z |
||||
|
20O6u2t5aXSFU9KI4OlpLg== |
||||
|
-----END PRIVATE KEY----- |
@ -0,0 +1,18 @@ |
|||||
|
欢迎使用微信支付! |
||||
|
附件中的三份文件(证书pkcs12格式、证书pem格式、证书密钥pem格式),为接口中强制要求时需携带的证书文件。 |
||||
|
证书属于敏感信息,请妥善保管不要泄露和被他人复制。 |
||||
|
不同开发语言下的证书格式不同,以下为说明指引: |
||||
|
证书pkcs12格式(apiclient_cert.p12) |
||||
|
包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 |
||||
|
部分安全性要求较高的API需要使用该证书来确认您的调用身份 |
||||
|
windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户号(如:1900006031) |
||||
|
证书pem格式(apiclient_cert.pem) |
||||
|
从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 |
||||
|
部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 |
||||
|
您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem |
||||
|
证书密钥pem格式(apiclient_key.pem) |
||||
|
从apiclient_cert.p12中导出密钥部分的文件,为pem格式 |
||||
|
部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 |
||||
|
您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem |
||||
|
备注说明: |
||||
|
由于绝大部分操作系统已内置了微信支付服务器证书的根CA证书, 2018年3月6日后, 不再提供CA证书文件(rootca.pem)下载 |
@ -0,0 +1,84 @@ |
|||||
|
version: "3.4" |
||||
|
|
||||
|
name: yudao-system |
||||
|
|
||||
|
services: |
||||
|
mysql: |
||||
|
container_name: yudao-mysql |
||||
|
image: mysql:8 |
||||
|
restart: unless-stopped |
||||
|
tty: true |
||||
|
ports: |
||||
|
- "3306:3306" |
||||
|
environment: |
||||
|
MYSQL_DATABASE: ${MYSQL_DATABASE:-ruoyi-vue-pro} |
||||
|
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-123456} |
||||
|
volumes: |
||||
|
- mysql:/var/lib/mysql/ |
||||
|
- ./sql/mysql/ruoyi-vue-pro.sql:/docker-entrypoint-initdb.d/ruoyi-vue-pro.sql:ro |
||||
|
|
||||
|
redis: |
||||
|
container_name: yudao-redis |
||||
|
image: redis:6-alpine |
||||
|
restart: unless-stopped |
||||
|
ports: |
||||
|
- "6379:6379" |
||||
|
volumes: |
||||
|
- redis:/data |
||||
|
|
||||
|
server: |
||||
|
container_name: yudao-server |
||||
|
build: |
||||
|
context: ./yudao-server/ |
||||
|
image: yudao-server |
||||
|
restart: unless-stopped |
||||
|
ports: |
||||
|
- "48080:48080" |
||||
|
environment: |
||||
|
# https://github.com/polovyivan/docker-pass-configs-to-container |
||||
|
SPRING_PROFILES_ACTIVE: local |
||||
|
JAVA_OPTS: |
||||
|
${JAVA_OPTS:- |
||||
|
-Xms512m |
||||
|
-Xmx512m |
||||
|
-Djava.security.egd=file:/dev/./urandom |
||||
|
} |
||||
|
ARGS: |
||||
|
--spring.datasource.dynamic.datasource.master.url=${MASTER_DATASOURCE_URL:-jdbc:mysql://yudao-mysql:3306/ruoyi-vue-pro?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true} |
||||
|
--spring.datasource.dynamic.datasource.master.username=${MASTER_DATASOURCE_USERNAME:-root} |
||||
|
--spring.datasource.dynamic.datasource.master.password=${MASTER_DATASOURCE_PASSWORD:-123456} |
||||
|
--spring.datasource.dynamic.datasource.slave.url=${SLAVE_DATASOURCE_URL:-jdbc:mysql://yudao-mysql:3306/ruoyi-vue-pro?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true} |
||||
|
--spring.datasource.dynamic.datasource.slave.username=${SLAVE_DATASOURCE_USERNAME:-root} |
||||
|
--spring.datasource.dynamic.datasource.slave.password=${SLAVE_DATASOURCE_PASSWORD:-123456} |
||||
|
--spring.redis.host=${REDIS_HOST:-yudao-redis} |
||||
|
depends_on: |
||||
|
- mysql |
||||
|
- redis |
||||
|
|
||||
|
admin: |
||||
|
container_name: yudao-admin |
||||
|
build: |
||||
|
context: ./yudao-ui-admin |
||||
|
args: |
||||
|
NODE_ENV: |
||||
|
ENV=${NODE_ENV:-production} |
||||
|
PUBLIC_PATH=${PUBLIC_PATH:-/} |
||||
|
VUE_APP_TITLE=${VUE_APP_TITLE:-芋道管理系统} |
||||
|
VUE_APP_BASE_API=${VUE_APP_BASE_API:-/prod-api} |
||||
|
VUE_APP_APP_NAME=${VUE_APP_APP_NAME:-/} |
||||
|
VUE_APP_TENANT_ENABLE=${VUE_APP_TENANT_ENABLE:-true} |
||||
|
VUE_APP_CAPTCHA_ENABLE=${VUE_APP_CAPTCHA_ENABLE:-true} |
||||
|
VUE_APP_DOC_ENABLE=${VUE_APP_DOC_ENABLE:-true} |
||||
|
VUE_APP_BAIDU_CODE=${VUE_APP_BAIDU_CODE:-fadc1bd5db1a1d6f581df60a1807f8ab} |
||||
|
image: yudao-admin |
||||
|
restart: unless-stopped |
||||
|
ports: |
||||
|
- "8080:80" |
||||
|
depends_on: |
||||
|
- server |
||||
|
|
||||
|
volumes: |
||||
|
mysql: |
||||
|
driver: local |
||||
|
redis: |
||||
|
driver: local |
@ -0,0 +1,25 @@ |
|||||
|
## mysql |
||||
|
MYSQL_DATABASE=ruoyi-vue-pro |
||||
|
MYSQL_ROOT_PASSWORD=123456 |
||||
|
|
||||
|
## server |
||||
|
JAVA_OPTS=-Xms512m -Xmx512m -Djava.security.egd=file:/dev/./urandom |
||||
|
|
||||
|
MASTER_DATASOURCE_URL=jdbc:mysql://yudao-mysql:3306/${MYSQL_DATABASE}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true |
||||
|
MASTER_DATASOURCE_USERNAME=root |
||||
|
MASTER_DATASOURCE_PASSWORD=${MYSQL_ROOT_PASSWORD} |
||||
|
SLAVE_DATASOURCE_URL=${MASTER_DATASOURCE_URL} |
||||
|
SLAVE_DATASOURCE_USERNAME=${MASTER_DATASOURCE_USERNAME} |
||||
|
SLAVE_DATASOURCE_PASSWORD=${MASTER_DATASOURCE_PASSWORD} |
||||
|
REDIS_HOST=yudao-redis |
||||
|
|
||||
|
## admin |
||||
|
NODE_ENV=production |
||||
|
PUBLIC_PATH=/ |
||||
|
VUE_APP_TITLE=芋道管理系统 |
||||
|
VUE_APP_BASE_API=/prod-api |
||||
|
VUE_APP_APP_NAME=/ |
||||
|
VUE_APP_TENANT_ENABLE=true |
||||
|
VUE_APP_CAPTCHA_ENABLE=true |
||||
|
VUE_APP_DOC_ENABLE=true |
||||
|
VUE_APP_BAIDU_CODE=fadc1bd5db1a1d6f581df60a1807f8ab |
@ -0,0 +1,20 @@ |
|||||
|
{ |
||||
|
"local": { |
||||
|
"baseUrl": "http://127.0.0.1:48080/admin-api", |
||||
|
"token": "test1", |
||||
|
"adminTenentId": "1", |
||||
|
|
||||
|
"appApi": "http://127.0.0.1:48080/app-api", |
||||
|
"appToken": "test247", |
||||
|
"appTenentId": "1" |
||||
|
}, |
||||
|
"gateway": { |
||||
|
"baseUrl": "http://127.0.0.1:8888/admin-api", |
||||
|
"token": "test1", |
||||
|
"adminTenentId": "1", |
||||
|
|
||||
|
"appApi": "http://127.0.0.1:8888/app-api", |
||||
|
"appToken": "test1", |
||||
|
"appTenantId": "1" |
||||
|
} |
||||
|
} |
@ -0,0 +1,4 @@ |
|||||
|
config.stopBubbling = true |
||||
|
lombok.tostring.callsuper=CALL |
||||
|
lombok.equalsandhashcode.callsuper=CALL |
||||
|
lombok.accessors.chain=true |
@ -0,0 +1,112 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" |
||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
||||
|
<modelVersion>4.0.0</modelVersion> |
||||
|
<groupId>cn.iocoder.boot</groupId> |
||||
|
<artifactId>yudao</artifactId> |
||||
|
<version>${revision}</version> |
||||
|
<packaging>pom</packaging> |
||||
|
<modules> |
||||
|
<module>yudao-dependencies</module> |
||||
|
<module>yudao-framework</module> |
||||
|
<!-- Server 主项目 --> |
||||
|
<module>yudao-server</module> |
||||
|
<!-- 各种 module 拓展 --> |
||||
|
<module>yudao-module-member</module> |
||||
|
<module>yudao-module-system</module> |
||||
|
<module>yudao-module-infra</module> |
||||
|
<module>yudao-module-pay</module> |
||||
|
<!-- <module>yudao-module-bpm</module>--> |
||||
|
<!-- <module>yudao-module-report</module>--> |
||||
|
<!-- <module>yudao-module-mp</module>--> |
||||
|
<module>yudao-module-mall</module> |
||||
|
<module>yudao-module-cms</module> |
||||
|
</modules> |
||||
|
|
||||
|
<name>${project.artifactId}</name> |
||||
|
<description>芋道项目基础脚手架</description> |
||||
|
<url>https://github.com/YunaiV/ruoyi-vue-pro</url> |
||||
|
|
||||
|
<properties> |
||||
|
<revision>1.8.0-snapshot</revision> |
||||
|
<!-- Maven 相关 --> |
||||
|
<java.version>1.8</java.version> |
||||
|
<maven.compiler.source>${java.version}</maven.compiler.source> |
||||
|
<maven.compiler.target>${java.version}</maven.compiler.target> |
||||
|
<maven-surefire-plugin.version>3.0.0-M5</maven-surefire-plugin.version> |
||||
|
<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version> |
||||
|
<!-- 看看咋放到 bom 里 --> |
||||
|
<lombok.version>1.18.28</lombok.version> |
||||
|
<spring.boot.version>2.7.14</spring.boot.version> |
||||
|
<mapstruct.version>1.5.5.Final</mapstruct.version> |
||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
||||
|
</properties> |
||||
|
|
||||
|
<dependencyManagement> |
||||
|
<dependencies> |
||||
|
<dependency> |
||||
|
<groupId>cn.iocoder.boot</groupId> |
||||
|
<artifactId>yudao-dependencies</artifactId> |
||||
|
<version>${revision}</version> |
||||
|
<type>pom</type> |
||||
|
<scope>import</scope> |
||||
|
</dependency> |
||||
|
</dependencies> |
||||
|
</dependencyManagement> |
||||
|
|
||||
|
<build> |
||||
|
<pluginManagement> |
||||
|
<plugins> |
||||
|
<!-- maven-surefire-plugin 插件,用于运行单元测试。 --> |
||||
|
<!-- 注意,需要使用 3.0.X+,因为要支持 Junit 5 版本 --> |
||||
|
<plugin> |
||||
|
<groupId>org.apache.maven.plugins</groupId> |
||||
|
<artifactId>maven-surefire-plugin</artifactId> |
||||
|
<version>${maven-surefire-plugin.version}</version> |
||||
|
</plugin> |
||||
|
<!-- maven-compiler-plugin 插件,解决 spring-boot-configuration-processor + Lombok + MapStruct 组合 --> |
||||
|
<!-- https://stackoverflow.com/questions/33483697/re-run-spring-boot-configuration-annotation-processor-to-update-generated-metada --> |
||||
|
<plugin> |
||||
|
<groupId>org.apache.maven.plugins</groupId> |
||||
|
<artifactId>maven-compiler-plugin</artifactId> |
||||
|
<version>${maven-compiler-plugin.version}</version> |
||||
|
<configuration> |
||||
|
<annotationProcessorPaths> |
||||
|
<path> |
||||
|
<groupId>org.springframework.boot</groupId> |
||||
|
<artifactId>spring-boot-configuration-processor</artifactId> |
||||
|
<version>${spring.boot.version}</version> |
||||
|
</path> |
||||
|
<path> |
||||
|
<groupId>org.projectlombok</groupId> |
||||
|
<artifactId>lombok</artifactId> |
||||
|
<version>${lombok.version}</version> |
||||
|
</path> |
||||
|
<path> |
||||
|
<groupId>org.mapstruct</groupId> |
||||
|
<artifactId>mapstruct-processor</artifactId> |
||||
|
<version>${mapstruct.version}</version> |
||||
|
</path> |
||||
|
</annotationProcessorPaths> |
||||
|
</configuration> |
||||
|
</plugin> |
||||
|
</plugins> |
||||
|
</pluginManagement> |
||||
|
</build> |
||||
|
|
||||
|
<!-- 使用 huawei / aliyun 的 Maven 源,提升下载速度 --> |
||||
|
<repositories> |
||||
|
<repository> |
||||
|
<id>huaweicloud</id> |
||||
|
<name>huawei</name> |
||||
|
<url>https://mirrors.huaweicloud.com/repository/maven/</url> |
||||
|
</repository> |
||||
|
<repository> |
||||
|
<id>aliyunmaven</id> |
||||
|
<name>aliyun</name> |
||||
|
<url>https://maven.aliyun.com/repository/public</url> |
||||
|
</repository> |
||||
|
</repositories> |
||||
|
|
||||
|
</project> |
@ -0,0 +1,3 @@ |
|||||
|
暂未适配 IBM DB2 数据库,如果你有需要,可以微信联系 wangwenbin-server 一起建设。 |
||||
|
|
||||
|
你需要把表结构与数据导入到 DM 数据库,我来测试与适配代码。 |
@ -0,0 +1,3 @@ |
|||||
|
暂未适配国产 DM 数据库,如果你有需要,可以微信联系 wangwenbin-server 一起建设。 |
||||
|
|
||||
|
你需要把表结构与数据导入到 DM 数据库,我来测试与适配代码。 |