Skip to content

💻 开发者环境搭建与编译指南

本指南详细介绍了面向 Agrarian Reform 贡献者的开发环境需求、Gradle 构建命令、多版本锚点子项目结构以及自动化测试执行流程。


🛠️ 开发环境先决条件

  • Java 开发工具包:JDK 25 (release = 25)。
  • Gradle 版本:Gradle 9.3+(通过 Gradle Wrapper ./gradlew 统一管理)。
  • Fabric Loom: Loom 1.15.5.
  • 映射表:现代非混淆运行时(Mojang 官方映射表由 Loom 原生处理)。
  • 集成开发环境:支持 Java 25 的 IntelliJ IDEA 2025.3+ 或 Eclipse。

🏗️ 多版本子项目结构与编译

Agrarian Reform 严格遵循 1 Jar 1 Version 法则,针对每个 Minecraft 版本锚点设立独立的子项目文件夹:

Agrarian Reform/
├── Agrarian Reform v26.2/
│   └── agrarian-reform/ (Targets MC 26.2 / ">=26.2-")
├── Agrarian Reform v26.3/
│   └── agrarian-reform/ (Targets MC 26.3 / ">=26.3-")
└── Archive Jar of all versions/
    ├── MC 26.2/
    └── MC 26.3/

从源码构建

bash
# 克隆仓库代码
git clone https://github.com/Rifaditya/Agrarian-reform-MC-mod.git

# 构建 MC 26.2 JAR 文件
cd "Agrarian Reform v26.2/agrarian-reform"
./gradlew check test build --no-daemon

# 构建 MC 26.3 JAR 文件
cd "../../Agrarian Reform v26.3/agrarian-reform"
./gradlew check test build --no-daemon

编译生成的 JAR (agrarian-reform-2.2.18+26.2.jaragrarian-reform-2.2.18+26.3.jar) 会自动经过校验并归档至 Archive Jar of all versions/ 目录。


🧪 无头自动化单元测试

遵循自动化 GameTest 验证法则,在执行 ./gradlew test./gradlew check 时会自动运行无头测试套件:

  1. ContinuumMathTest.java:
    • 断言标准与模组作物在离线时间差下的缩放增长曲线。
    • 断言冻结倍率规则 ($-1 \to \text{effectiveDelta} = 0$)。
    • 断言 30 天过期时间戳清理上限 ($51,840,000\text{ 刻}$)。
    • 断言同心切比雪夫水化环几何模型 ($r = \max(|dx|, |dz|)$)。
  2. AgrarianConfigTest.java:
    • 断言默认配置架构不变量与版本迁移稳定性。
    • 断言倍率层级解析顺序(强制特定覆盖、冻结、全局回退)。
    • 断言模组作物探测去重机制。
    • 断言线程安全的脏标记状态流转。
bash
# 运行所有自动化测试
./gradlew test

🔒 强制单行开源协议头

所有 Java 源文件均必须包含标准单行版权声明:

java
// Copyright (C) 2026 Dasik (Rifaditya) | GNU GPLv3

See also: 架构设计与 Mixin 注入参考 and 版本兼容性与支持周期.

Official documentation & web portal for Dasik Igaijinn mods.