Skip to content

Building

Florianpal1 edited this page Aug 6, 2026 · 1 revision

Building from source

Requirements

  • JDK 21
  • Maven 3.8+
  • Internet access — the build pulls from PaperMC, Aikar, JitPack and Sonatype

Build

git clone https://github.com/Florianpal1/FMessage.git
cd FMessage
mvn clean install

The reactor builds FMessageCommon first (the proxy modules depend on it), then the three plugin modules. Jars land in:

FMessageBukkit/target/FMessageBukkit-2.4.5.jar
FMessageBungee/target/FMessageBungee-2.4.5.jar
FMessageVelocity/target/FMessageVelocity-2.4.5.jar

mvn clean package also works, but install is needed the first time so that FMessageCommon is available in your local repository for the proxy modules.

Build a single module (after FMessageCommon has been installed at least once):

mvn -pl FMessageVelocity -am clean package

Run the tests:

mvn test

Bumping the version

The version is repeated in several places — keep them in sync:

  • the root pom.xml: <version> and the global.version property
  • the <parent> block and <version> of each of the four modules
  • the FMessageCommon dependency version in FMessageBungee/pom.xml and FMessageVelocity/pom.xml
  • version: in FMessageBukkit/src/main/resources/plugin.yml, FMessageBungee/src/main/resources/plugin.yml and FMessageVelocity/src/main/resources/plugin.yml

Shading

Each module runs maven-shade-plugin and relocates its bundled libraries so they cannot clash with other plugins:

Original package Relocated to
co.aikar.commands fr.florianpal.fmessage.acf
co.aikar.locales fr.florianpal.fmessage.locales
org.mariadb.jdbc fr.florianpal.fmessage.mysql
org.bstats fr.florianpal.fmessage.bstats

FMessageBukkit additionally builds with minimizeJar.

Continuous integration

.github/workflows/maven.yml runs on every push and pull request to master: JDK 21 (Temurin), Maven cache, mvn -B package -DskipTests=true, then uploads the three jars as an FMessage artifact.

Contributing

Bug reports and pull requests go to the issue tracker. When touching commands or message handling, remember that FMessageBungee and FMessageVelocity are parallel implementations — a change usually belongs in both. See Architecture.

The project is licensed under the GPL-3.0.

Clone this wiki locally