# Build, CI and Release


> **Documentation baseline:** VoxelCore `main` at `452b569` ยท 14 September 2026.  
> **Repository:** [https://github.com/VoxelHorizons/VoxelCore](https://github.com/VoxelHorizons/VoxelCore)


## Maven reactor

Build all distribution artifacts:

```bash
mvn -U clean package
```

Build one family plus required modules:

```bash
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:

```text
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