Skip to content

💻 Configuração de desenvolvimento e compilação

Este guia traz requisitos, comandos Gradle, submódulos multi-versão e testes automatizados para desenvolvedores do Agrarian Reform.


🛠️ Pré-requisitos de ambiente

  • Kit de Desenvolvimento Java: JDK 25 (release = 25).
  • Versão do Gradle: Gradle 9.3+ (usando ./gradlew).
  • Fabric Loom: Loom 1.15.5.
  • Mapeamentos: Ambiente moderno desobfustado (mapeamentos oficiais da Mojang).
  • IDE: IntelliJ IDEA 2025.3+ ou Eclipse com suporte a Java 25.

🏗️ Estrutura de subprojetos multi-versão

O Agrarian Reform segue a regra estrita de 1 Jar 1 Version com pastas próprias para cada versão suportada:

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/

Compilação a partir do código-fonte

bash
# Clonar o repositório
git clone https://github.com/Rifaditya/Agrarian-reform-MC-mod.git

# Compilar JAR para MC 26.2
cd "Agrarian Reform v26.2/agrarian-reform"
./gradlew check test build --no-daemon

# Compilar JAR para MC 26.3
cd "../../Agrarian Reform v26.3/agrarian-reform"
./gradlew check test build --no-daemon

Os arquivos JAR gerados (agrarian-reform-2.2.18+26.2.jar e agrarian-reform-2.2.18+26.3.jar) são validados e guardados em Archive Jar of all versions/.


🧪 Testes unitários headless automatizados

Seguindo a política de testes GameTest automatizados, suítes sem interface gráfica são executadas em ./gradlew test e ./gradlew check:

  1. ContinuumMathTest.java:
    • Valida a escala de crescimento offline para curvas de crescimento padrão e de mods.
    • Valida a regra de congelamento ($-1 \to \text{effectiveDelta} = 0$).
    • Valida a limpeza de marcas temporais com mais de 30 dias ($51,840,000\text{ ticks}$).
    • Valida a geometria de anéis concêntricos de Chebyshev ($r = \max(|dx|, |dz|)$).
  2. AgrarianConfigTest.java:
    • Valida a estabilidade e invariantes do esquema de configuração padrão.
    • Valida a resolução hierárquica de multiplicadores (específico, congelado, fallback global).
    • Valida a desduplicação ao registrar novas plantas.
    • Valida a segurança entre threads no gerenciamento de alterações pendentes.
bash
# Executar todos os testes automatizados
./gradlew test

🔒 Cabeçalho de licença obrigatório

Todos os arquivos de código Java devem conter o cabeçalho de licença de linha única padrão:

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

See also: Arquitetura e mixins and Compatibilidade de versões e ciclo de vida.

Official documentation & web portal for Dasik Igaijinn mods.