@ -0,0 +1,53 @@
|
||||
###################################################################### |
||||
# Build Tools |
||||
|
||||
.gradle |
||||
/build/ |
||||
!gradle/wrapper/gradle-wrapper.jar |
||||
|
||||
target/ |
||||
!.mvn/wrapper/maven-wrapper.jar |
||||
|
||||
.flattened-pom.xml |
||||
|
||||
###################################################################### |
||||
# 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: 112 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: 95 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 33 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 9.7 KiB |
After Width: | Height: | Size: 56 KiB |
After Width: | Height: | Size: 8.6 KiB |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 7.0 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 348 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 46 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 204 KiB |
After Width: | Height: | Size: 139 KiB |
After Width: | Height: | Size: 69 KiB |
After Width: | Height: | Size: 32 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 201 KiB |
After Width: | Height: | Size: 60 KiB |
After Width: | Height: | Size: 37 KiB |
After Width: | Height: | Size: 130 KiB |
After Width: | Height: | Size: 89 KiB |
After Width: | Height: | Size: 89 KiB |
After Width: | Height: | Size: 160 KiB |
After Width: | Height: | Size: 150 KiB |
After Width: | Height: | Size: 124 KiB |
After Width: | Height: | Size: 83 KiB |
After Width: | Height: | Size: 73 KiB |
After Width: | Height: | Size: 53 KiB |
After Width: | Height: | Size: 109 KiB |
After Width: | Height: | Size: 69 KiB |
After Width: | Height: | Size: 78 KiB |
After Width: | Height: | Size: 126 KiB |
After Width: | Height: | Size: 74 KiB |
After Width: | Height: | Size: 80 KiB |
After Width: | Height: | Size: 177 KiB |
After Width: | Height: | Size: 126 KiB |
After Width: | Height: | Size: 93 KiB |
After Width: | Height: | Size: 93 KiB |
After Width: | Height: | Size: 55 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: 37 KiB |
After Width: | Height: | Size: 41 KiB |
After Width: | Height: | Size: 98 KiB |
After Width: | Height: | Size: 208 KiB |
After Width: | Height: | Size: 47 KiB |
After Width: | Height: | Size: 97 KiB |
After Width: | Height: | Size: 74 KiB |
After Width: | Height: | Size: 114 KiB |
After Width: | Height: | Size: 116 KiB |
After Width: | Height: | Size: 84 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: 128 KiB |
After Width: | Height: | Size: 82 KiB |
After Width: | Height: | Size: 112 KiB |
After Width: | Height: | Size: 93 KiB |
After Width: | Height: | Size: 77 KiB |
After Width: | Height: | Size: 41 KiB |
After Width: | Height: | Size: 248 KiB |
After Width: | Height: | Size: 80 KiB |
After Width: | Height: | Size: 96 KiB |
After Width: | Height: | Size: 115 KiB |
After Width: | Height: | Size: 91 KiB |
After Width: | Height: | Size: 129 KiB |
After Width: | Height: | Size: 102 KiB |
After Width: | Height: | Size: 85 KiB |
After Width: | Height: | Size: 73 KiB |
After Width: | Height: | Size: 92 KiB |
After Width: | Height: | Size: 77 KiB |
After Width: | Height: | Size: 109 KiB |
After Width: | Height: | Size: 89 KiB |
After Width: | Height: | Size: 80 KiB |
After Width: | Height: | Size: 110 KiB |
After Width: | Height: | Size: 131 KiB |
After Width: | Height: | Size: 62 KiB |
@ -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,4 @@
|
||||
config.stopBubbling = true |
||||
lombok.tostring.callsuper=CALL |
||||
lombok.equalsandhashcode.callsuper=CALL |
||||
lombok.accessors.chain=true |
@ -0,0 +1,167 @@
|
||||
<?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-system</module> |
||||
<module>yudao-module-infra</module> |
||||
<!-- <module>yudao-module-member</module>--> |
||||
<!-- <module>yudao-module-bpm</module>--> |
||||
<!-- <module>yudao-module-report</module>--> |
||||
<!-- <module>yudao-module-mp</module>--> |
||||
<!-- <module>yudao-module-pay</module>--> |
||||
<!-- <module>yudao-module-mall</module>--> |
||||
<!-- <module>yudao-module-crm</module>--> |
||||
<!-- <module>yudao-module-erp</module>--> |
||||
<!-- <module>yudao-module-iot</module>--> |
||||
<!-- AI 大模型的开启,请参考 https://doc.iocoder.cn/ai/build/ 文档,对 JDK 版本要要求! --> |
||||
<!-- <module>yudao-module-ai</module>--> |
||||
</modules> |
||||
|
||||
<name>${project.artifactId}</name> |
||||
<description>芋道项目基础脚手架</description> |
||||
<url>https://github.com/YunaiV/ruoyi-vue-pro</url> |
||||
|
||||
<properties> |
||||
<revision>2.4.0-jdk8-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.13.0</maven-compiler-plugin.version> |
||||
<flatten-maven-plugin.version>1.6.0</flatten-maven-plugin.version> |
||||
<!-- 看看咋放到 bom 里 --> |
||||
<lombok.version>1.18.36</lombok.version> |
||||
<spring.boot.version>2.7.18</spring.boot.version> |
||||
<mapstruct.version>1.6.3</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> |
||||
<plugin> |
||||
<groupId>org.codehaus.mojo</groupId> |
||||
<artifactId>flatten-maven-plugin</artifactId> |
||||
</plugin> |
||||
</plugins> |
||||
</pluginManagement> |
||||
|
||||
<plugins> |
||||
<!-- 统一 revision 版本 --> |
||||
<plugin> |
||||
<groupId>org.codehaus.mojo</groupId> |
||||
<artifactId>flatten-maven-plugin</artifactId> |
||||
<version>${flatten-maven-plugin.version}</version> |
||||
<configuration> |
||||
<flattenMode>oss</flattenMode> |
||||
<updatePomFile>true</updatePomFile> |
||||
</configuration> |
||||
<executions> |
||||
<execution> |
||||
<goals> |
||||
<goal>flatten</goal> |
||||
</goals> |
||||
<id>flatten</id> |
||||
<phase>process-resources</phase> |
||||
</execution> |
||||
<execution> |
||||
<goals> |
||||
<goal>clean</goal> |
||||
</goals> |
||||
<id>flatten.clean</id> |
||||
<phase>clean</phase> |
||||
</execution> |
||||
</executions> |
||||
</plugin> |
||||
</plugins> |
||||
</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> |
||||
|
||||
<repository> |
||||
<id>spring-milestones</id> |
||||
<name>Spring Milestones</name> |
||||
<url>https://repo.spring.io/milestone</url> |
||||
<snapshots> |
||||
<enabled>false</enabled> |
||||
</snapshots> |
||||
</repository> |
||||
<repository> |
||||
<id>spring-snapshots</id> |
||||
<name>Spring Snapshots</name> |
||||
<url>https://repo.spring.io/snapshot</url> |
||||
<releases> |
||||
<enabled>false</enabled> |
||||
</releases> |
||||
</repository> |
||||
</repositories> |
||||
|
||||
</project> |
@ -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,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 |