|
1 | 1 | # MaaBackendCenter |
2 | 2 |
|
3 | | -使用 Kotlin(Java) 重写的 MAA 作业服务器后端 |
| 3 | +使用 Kotlin 编写的 MAA 作业服务器后端 |
4 | 4 |
|
5 | 5 | ## 开发技术栈 |
6 | 6 |
|
7 | | -- kotlin 1.9 (Java 21) |
| 7 | +- kotlin 2.1 (Java 21) |
8 | 8 | - SpringBoot 3 |
9 | | - - spring-security |
10 | | - - springdoc-openapi |
| 9 | + - spring-security |
| 10 | + - springdoc-openapi |
11 | 11 | - MongoDB |
12 | 12 | - Redis |
13 | 13 |
|
14 | 14 | ## 本地开发指南 |
15 | | -1. 使用你喜欢的 IDE 导入此项目,修改 /src/main/resources/application-template.yml 中的数据库配置以符合你自己配置的环境 |
16 | | -2. 下载安装 JDK 21 或者以上版本的 jdk,可以考虑从 [zuluJDK](https://www.azul.com/downloads/?version=java-17-lts&package=jdk) 或者 [libreicaJDK](https://bell-sw.com/pages/downloads/#/java-17-lts) 下载安装。 Jetbrains Idea 可以使用自带的 JDK 管理器进行下载。 |
17 | | -3. 你需要一个有redis和mongoDB的环境,如果你是windows用户,可以从 https://github.com/tporadowski/redis 中下载版本较旧的 redis 使用。 您也可以直接使用 `./dev-docker/docker-compose.yml` 来启动 docker 服务。 |
| 15 | + |
| 16 | +1. 使用你喜欢的 IDE 导入此项目,复制 `/src/main/resources/application-template.yml` 到同目录下,命名为 |
| 17 | + `application-dev.yml`,修改数据库配置以符合你自己配置的环境。 |
| 18 | +2. 下载安装 JDK 21 或者以上版本的 |
| 19 | + jdk,可以考虑从 [zuluJDK](https://www.azul.com/downloads/?version=java-17-lts&package=jdk) |
| 20 | + 或者 [libreicaJDK](https://bell-sw.com/pages/downloads/#/java-17-lts) 下载安装。 Jetbrains Idea 可以使用自带的 JDK |
| 21 | + 管理器进行下载。 |
| 22 | +3. 你需要一个有redis和mongoDB的环境,如果你是windows用户,可以从 https://github.com/redis-windows/redis-windows/releases |
| 23 | + 中下载使用。 您也可以直接使用 `./dev-docker/docker-compose.yml` 来启动 docker 服务。 |
18 | 24 | 4. 运行 `./gradlew bootRun`, windows 环境为 `./gradlew.bat bootRun` |
19 | | -5. 首次运行建议修改 ArkLevelSyncTask 类的 scheduled 注解的参数,这样可以将明日方舟中的关卡数据同步到你本地的 mongodb 中,为了防止反复调用造成调试的麻烦,建议首次运行同步成功后再将代码修改回去 |
| 25 | +5. 首次运行建议修改配置文件中的 `maa-copilot.task-cron.ark-level` 配置,这样可以将明日方舟中的关卡数据同步到你本地的 |
| 26 | + mongodb 中,为了防止反复调用造成调试的麻烦,建议首次运行同步成功后再将配置修改回去 |
20 | 27 |
|
21 | 28 | ## 项目结构 |
22 | 29 |
|
23 | 30 | - config # 存放 spring 配置 |
24 | 31 | - common # 共享的逻辑 |
25 | 32 | - controller # 交互层 |
26 | | - - request # 入参类型 |
27 | | - - response # 响应类型 |
| 33 | + - request # 入参类型 |
| 34 | + - response # 响应类型 |
28 | 35 | - repository # 数据仓库层,用于和数据库交互 |
29 | | - - entity # 与数据库字段对应的类型 |
30 | | -- service # 业务处理层,复杂或者公用逻辑放在这里(注:您无需为每个类型都提供对应接口,只有当接口在可见未来有多个实现的时候才考虑建立接口) |
31 | | - - model # 应用内传输用类型放这里 |
| 36 | + - entity # 与数据库字段对应的类型 |
| 37 | +- service # 业务处理层,复杂或者公用逻辑放在这里 |
| 38 | + - model # 应用内传输用类型放这里 |
32 | 39 |
|
33 | 40 | ## 编译与部署 |
34 | 41 |
|
35 | | -1. 安装 JDK 21,可以考虑从 [zuluJDK](https://www.azul.com/downloads/?version=java-17-lts&package=jdk) 或者 [libreicaJDK](https://bell-sw.com/pages/downloads/#/java-17-lts) 下载 |
| 42 | +1. 安装 JDK 21,可以考虑从 [zuluJDK](https://www.azul.com/downloads/?version=java-17-lts&package=jdk) |
| 43 | + 或者 [libreicaJDK](https://bell-sw.com/pages/downloads/#/java-17-lts) 下载 |
36 | 44 | 2. clone 此项目 `git clone https://github.com/MaaAssistantArknights/MaaBackendCenter.git` |
37 | 45 | 3. 进入此项目目录 `cd MaaBackendCenter` |
38 | | -4. 编译项目 `./gradlew bootJar -x processAot`,windows 环境下请使用 `gradlew.bat bootJar -x processAot` |
| 46 | +4. 编译项目 `./gradlew bootJar`,windows 环境下请使用 `gradlew.bat bootJar` |
39 | 47 | 5. 获得编译后的 jar 文件 `cp ./build/libs/MaaBackendCenter-1.0-SNAPSHOT.jar .` |
40 | 48 | 6. 复制一份配置文件 `cp ./build/resources/main/application-template.yml ./application-prod.yml` |
41 | 49 | 7. 修改配置文件 `application-prod.yml` |
42 | 50 | 8. 运行项目 `java -jar MaaBackendCenter-1.0-SNAPSHOT.jar --spring.profiles.active=prod` |
43 | 51 |
|
44 | 52 | ## native 编译(暂时废弃,如果希望协助维护,请查看native分支) |
45 | 53 |
|
46 | | -1. 安装 [GraalVM](https://github.com/graalvm/graalvm-ce-builds/releases) |
| 54 | +1. 安装 [GraalVM](https://www.graalvm.org/downloads/) |
47 | 55 | Java21,并配置好环境变量,部分功能需要正确配置 `JAVA_HOME` 变量为 GraalVM 安装目录才能正常使用 |
48 | 56 | 2. 如果您处于 Windows 环境下,需要安装 `Visual Studio` 并且安装 C++ 组件,Linux 环境下则需要安装 `gcc` 工具链,Mac |
49 | 57 | 下需要安装 `xcode` |
50 | | - 工具链,详情查看 [native-image#prerequisites](https://www.graalvm.org/22.3/reference-manual/native-image/#prerequisites) |
51 | | -3. 通过 `gu install native-image` 安装 `native-image` AOT 编译器 |
52 | | -4. 在该项目目录下,执行 `./gradlew nativeRun` 或者 `.\gradlew.bat nativeRun` 编译并运行该项目 |
53 | | -5. 如果您希望产生 docker image,请执行 `./gradlew bootBuildImage` |
| 58 | + 工具链,详情查看 [native-image#prerequisites](https://www.graalvm.org/latest/reference-manual/native-image/#prerequisites) |
| 59 | +3. 在该项目目录下,执行 `./gradlew nativeRun` 或者 `.\gradlew.bat nativeRun` 编译并运行该项目 |
| 60 | +4. 如果您希望产生 docker image,请执行 `./gradlew bootBuildImage` |
54 | 61 |
|
55 | 62 | ## Join us! |
56 | 63 |
|
|
0 commit comments