• 简体中文
  • 开发环境搭建

    前置条件

    工具版本用途
    GraalVM JDK21运行时、编译,可选原生镜像
    Maven3.8+构建系统
    Git2.x版本控制
    IDE推荐 IntelliJ IDEA开发

    克隆并构建

    git clone https://gitcode.com/qiusls/firmiana.git
    cd firmiana
    mvn compile

    运行

    mvn exec:java

    服务器在 http://localhost:8899 上启动。

    Windows Classpath 方式

    exec:java 插件在 Windows 上可能无法工作。使用:

    mvn dependency:build-classpath -q -DincludeScope=runtime -Dmdep.outputFile=target/cp.txt
    java -cp "target/classes;$(cat target/cp.txt)" com.firmiana.matrix.Application

    运行测试

    mvn test

    预期:244 个测试,0 失败。

    IDE 设置(IntelliJ IDEA)

    1. 作为 Maven 项目打开
    2. 启用注解处理:Settings > Build > Compiler > Annotation Processors > Enable
    3. 如果尚未安装 Lombok 插件,请安装
    4. 导入项目设置中的代码风格(如果有)

    项目结构

    firmiana/
    ├── pom.xml                          # Maven 构建配置
    ├── src/main/java/com/firmiana/matrix/
    │   ├── Application.java             # 入口点
    │   ├── config/                      # 配置类
    │   ├── controller/                  # HTTP 控制器 (43+)
    │   │   ├── auth/                    # 登录、注册、登出
    │   │   ├── room/                    # 房间操作
    │   │   ├── user/                    # 用户资料、在线状态
    │   │   ├── device/                  # 设备管理
    │   │   └── media/                   # 媒体上传/下载
    │   ├── entity/                      # 数据实体
    │   ├── exception/                   # 错误处理
    │   ├── federation/                  # Server-Server API
    │   ├── repository/                  # 数据仓储
    │   ├── request/                     # 请求 DTO
    │   ├── response/                    # 响应 DTO
    │   ├── security/                    # 认证、令牌、UIAA
    │   └── service/                     # 业务逻辑
    ├── src/main/resources/
    │   ├── application.yml              # 配置
    │   ├── logback.xml                  # 日志配置
    │   └── db/migration/               # Flyway SQL 迁移
    ├── src/test/java/                   # 测试类
    ├── docs/plan/                       # 实现计划
    └── data/                            # H2 数据库文件(已 gitignore)

    核心依赖

    依赖用途
    micronaut-http-server-nettyHTTP 服务器
    micronaut-data-jdbc数据访问
    micronaut-security认证
    h2内嵌数据库
    flyway-coreSchema 迁移
    lombok代码生成
    jackson-databindJSON 序列化