Skip to content

💻 개발자 환경 설정 및 빌드 가이드

이 가이드는 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 실행 시 헤드리스 테스트가 실행됩니다:

  1. ContinuumMathTest.java:
    • 기본 및 모드 작물의 오프라인 성장 곡선 시간 스케일링을 검증합니다.
    • 성장 동결 규칙($-1 \to \text{effectiveDelta} = 0$)을 검증합니다.
    • 30일 이상 지난 타임스탬프 정리 한도($51,840,000\text{ ticks}$)를 검증합니다.
    • 체비쇼프 거리 기반 동심원 관개 영역 기하학($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.