Build, CI and Release

Documentation baseline: VoxelCore main at 452b569 · 14 September 2026.
Repository: https://github.com/VoxelHorizons/VoxelCore

Maven reactor

Build all distribution artifacts:

mvn -U clean package

Build one family plus required modules:

mvn -pl voxelcore-v1_19_4 -am clean package

Java release targets

The root defaults to Maven release=8; newer modules override it:

  • v1.12 and v1.14 families: Java 8 bytecode;
  • v1.19.4 family: Java 17;
  • v1.20.5 and v1.21.4 families: Java 21;
  • v26.2: Java 25.

CI itself sets up JDK 25 so Maven can compile all of those modules in one reactor. The Shade plugin is 3.6.2, which supports the Java 25 build path used by the newest module.

Distribution packaging

Each version module shades the common/plugin implementation and relocates SnakeYAML to org.voxelhorizons.shaded.snakeyaml to avoid collisions with YAML libraries supplied by old server platforms.

Representative final names:

VoxelCore-<version>-mc1.12-1.13.jar
VoxelCore-<version>-mc1.14-1.19.3.jar
VoxelCore-<version>-mc1.19.4-1.20.4.jar
VoxelCore-<version>-mc1.20.5-1.21.3.jar
VoxelCore-<version>-mc1.21.4.jar
VoxelCore-<version>-mc26.2.jar

CI workflows

The repository contains:

  • .github/workflows/build.yml — builds all distributions and publishes/upload artifacts;
  • .github/workflows/mvp-smoke.yml — live-server compatibility matrix;
  • .github/scripts/mvp-smoke.sh — behaviour assertions inside each smoke environment.

The current smoke matrix has seven rows and uses Java 25/Paper for Minecraft 26.2 alongside the older Java/runtime combinations.

See Products/Voxel-Horizons/VoxelCore/Testing for what the matrix proves.

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9