💻 Entwickler-Setup und Kompilierung
Dieser Leitfaden beschreibt Systemanforderungen, Gradle-Befehle und Tests für Entwickler von Agrarian Reform.
🛠️ Voraussetzungen für die Entwicklungsumgebung
- Java Development Kit: JDK 25 (
release = 25). - Gradle-Version: Gradle 9.3+ (über den Wrapper
./gradlew). - Fabric Loom: Loom 1.15.5.
- Mappings: Moderne unverschleierte Laufzeitumgebung (Mojang-Mappings).
- IDE: IntelliJ IDEA 2025.3+ oder Eclipse mit Java 25-Unterstützung.
🏗️ Multi-Versions-Subprojektstruktur & Build
Agrarian Reform befolgt das 1 Jar 1 Version-Prinzip mit eigenen Ordnern pro Version:
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/Aus dem Quellcode bauen
bash
# Repository klonen
git clone https://github.com/Rifaditya/Agrarian-reform-MC-mod.git
# JAR für MC 26.2 bauen
cd "Agrarian Reform v26.2/agrarian-reform"
./gradlew check test build --no-daemon
# JAR für MC 26.3 bauen
cd "../../Agrarian Reform v26.3/agrarian-reform"
./gradlew check test build --no-daemonFertige JARs werden überprüft und in Archive Jar of all versions/ archiviert.
🧪 Automatisierte Headless-Unit-Tests
Headless-Tests werden bei ./gradlew test und ./gradlew check ausgeführt:
ContinuumMathTest.java:- Prüft Offline-Wachstumsskalierung über Zeitdifferenzen hinweg.
- Prüft Einfrierungsregel ($-1 \to \text{effectiveDelta} = 0$).
- Prüft Bereinigung alter Zeitstempel nach 30 Tagen ($51,840,000\text{ Ticks}$).
- Prüft die Geometrie konzentrischer Tschebyschow-Ringe ($r = \max(|dx|, |dz|)$).
AgrarianConfigTest.java:- Prüft Stabilität und Invarianten der Konfigurationsschemata.
- Prüft Hierarchie der Faktoren (spezifisch, eingefroren, global).
- Prüft Duplikaterkennung bei neuen Pflanzenarten.
- Prüft threadsichere Zustandsübergänge bei Änderungen.
bash
# Alle automatischen Tests ausführen
./gradlew test🔒 Verpflichtender Lizenz-Header
Alle Java-Dateien müssen den standardmäßigen einzeiligen Lizenz-Header enthalten:
java
// Copyright (C) 2026 Dasik (Rifaditya) | GNU GPLv3See also: Architektur und Mixin-Ziele and Versionskompatibilität und Support-Lebenszyklus.
