💻 개발자 환경 설정 및 빌드 가이드
이 가이드는 Agrarian Reform 개발자를 위한 환경 요구 사항, Gradle 빌드 명령어, 멀티 버전 구성, 자동 테스트를 안내합니다.
🛠️ 개발 환경 사전 요구사항
- Java Development Kit: JDK 25 (
release = 25). - Gradle 버전: Gradle 9.3 이상 (Gradle 래퍼
./gradlew사용). - Fabric Loom: Loom 1.15.5.
- 매핑: 현대적인 비난독화 런타임 (Mojang 공식 매핑).
- 개발 환경(IDE): IntelliJ IDEA 2025.3+ 또는 Java 25를 지원하는 Eclipse.
🏗️ 다중 버전 서브프로젝트 구조 및 빌드
Agrarian Reform은 마인크래프트 버전별 하위 프로젝트를 분리하는 엄격한 1 Jar 1 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/소스 코드에서 빌드하기
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 등)은 자동 검증을 거쳐 Archive Jar of all versions/에 보관됩니다.
🧪 헤드리스 자동화 단위 테스트
GameTest 자동 검증 원칙에 따라 ./gradlew test 및 ./gradlew check 실행 시 헤드리스 테스트가 실행됩니다:
ContinuumMathTest.java:- 기본 및 모드 작물의 오프라인 성장 곡선 시간 스케일링을 검증합니다.
- 성장 동결 규칙($-1 \to \text{effectiveDelta} = 0$)을 검증합니다.
- 30일 이상 지난 타임스탬프 정리 한도($51,840,000\text{ ticks}$)를 검증합니다.
- 체비쇼프 거리 기반 동심원 관개 영역 기하학($r = \max(|dx|, |dz|)$)을 검증합니다.
AgrarianConfigTest.java:- 기본 설정 스키마의 불변성과 버전 호환성을 검증합니다.
- 배율 우선순위 계층 구조(개별 지정, 동결, 전역 상속)를 검증합니다.
- 새로운 모드 작물 발견 시 중복 제거를 검증합니다.
- 변경 감지 저장 상태 전이의 스레드 안전성을 검증합니다.
bash
# 모든 자동 테스트 실행
./gradlew test🔒 필수 단일 행 라이선스 헤더
모든 Java 소스 파일에는 표준 단일 라인 라이선스 헤더가 포함되어야 합니다:
java
// Copyright (C) 2026 Dasik (Rifaditya) | GNU GPLv3See also: 아키텍처 및 Mixin 주입 대상 and 버전 호환성 및 수명 주기.
