💻 开发者环境搭建与编译指南
本指南详细介绍了面向 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.jar 与 agrarian-reform-2.2.18+26.3.jar) 会自动经过校验并归档至 Archive Jar of all versions/ 目录。
🧪 无头自动化单元测试
遵循自动化 GameTest 验证法则,在执行 ./gradlew test 和 ./gradlew check 时会自动运行无头测试套件:
ContinuumMathTest.java:- 断言标准与模组作物在离线时间差下的缩放增长曲线。
- 断言冻结倍率规则 ($-1 \to \text{effectiveDelta} = 0$)。
- 断言 30 天过期时间戳清理上限 ($51,840,000\text{ 刻}$)。
- 断言同心切比雪夫水化环几何模型 ($r = \max(|dx|, |dz|)$)。
AgrarianConfigTest.java:- 断言默认配置架构不变量与版本迁移稳定性。
- 断言倍率层级解析顺序(强制特定覆盖、冻结、全局回退)。
- 断言模组作物探测去重机制。
- 断言线程安全的脏标记状态流转。
bash
# 运行所有自动化测试
./gradlew test🔒 强制单行开源协议头
所有 Java 源文件均必须包含标准单行版权声明:
java
// Copyright (C) 2026 Dasik (Rifaditya) | GNU GPLv3See also: 架构设计与 Mixin 注入参考 and 版本兼容性与支持周期.
