191 lines
8.9 KiB
XML
191 lines
8.9 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||
<modelVersion>4.0.0</modelVersion>
|
||
|
||
<groupId>de.serverpulse</groupId>
|
||
<artifactId>ServerPulse</artifactId>
|
||
<version>1.0.2</version>
|
||
<packaging>jar</packaging>
|
||
|
||
<name>ServerPulse</name>
|
||
<description>Monitoring & Analytics Suite – Spigot + Paper + BungeeCord (unified JAR)</description>
|
||
|
||
<properties>
|
||
<!-- Bytecode bleibt auf 17 -> Jar läuft weiterhin auf älteren Servern (1.21.x).
|
||
Zum Kompilieren wird aber JDK 25 benötigt, da die paper-api 26.2 Klassen
|
||
mit Class-File-Version 25 ausliefert (siehe PaperMC Project-Setup Docs). -->
|
||
<maven.compiler.release>17</maven.compiler.release>
|
||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||
</properties>
|
||
|
||
<repositories>
|
||
<!-- PaperMC: Paper API (aktuell 26.2) + BungeeCord API -->
|
||
<repository>
|
||
<id>papermc</id>
|
||
<url>https://repo.papermc.io/repository/maven-public/</url>
|
||
</repository>
|
||
<!-- Spigot -->
|
||
<repository>
|
||
<id>spigot-repo</id>
|
||
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
|
||
</repository>
|
||
</repositories>
|
||
|
||
<dependencies>
|
||
<!-- ══════════════════════════════════════
|
||
SPIGOT / PAPER API (provided)
|
||
══════════════════════════════════════ -->
|
||
<!-- Ab 26.1 nutzt Paper ein neues Versionsschema (Jahr.Release statt 1.xx-R0.1-SNAPSHOT).
|
||
Der Range-Ausdruck holt sich automatisch den neuesten 26.2-Build.
|
||
Zum Fixieren auf einen konkreten Build stattdessen z.B. 26.2.build.60-beta eintragen. -->
|
||
<dependency>
|
||
<groupId>io.papermc.paper</groupId>
|
||
<artifactId>paper-api</artifactId>
|
||
<version>[26.2.build,)</version>
|
||
<scope>provided</scope>
|
||
</dependency>
|
||
|
||
<!-- ══════════════════════════════════════
|
||
BUNGEECORD API (provided)
|
||
══════════════════════════════════════ -->
|
||
<!-- TODO prüfen: ob/wann net.md-5 eine bungeecord-api 26.2-R0.1-SNAPSHOT im
|
||
hub.spigotmc.org Snapshot-Repo veröffentlicht. Aktuell bleibt 26.1 eingetragen,
|
||
da ich das von hier aus nicht gegen das Repo verifizieren konnte (Netzwerkzugriff
|
||
auf hub.spigotmc.org ist mir nicht möglich). BungeeCord-Server laden Plugins auch
|
||
ohne exakt passende API-Version, das Bungee-Modul sollte also trotzdem auf einem
|
||
26.2-Proxy laufen - bitte einmal real testen. -->
|
||
<dependency>
|
||
<groupId>net.md-5</groupId>
|
||
<artifactId>bungeecord-api</artifactId>
|
||
<version>26.1-R0.1-SNAPSHOT</version>
|
||
<scope>provided</scope>
|
||
</dependency>
|
||
|
||
<!-- ══════════════════════════════════════
|
||
SHADED DEPENDENCIES
|
||
══════════════════════════════════════ -->
|
||
|
||
<!-- MySQL Connector -->
|
||
<dependency>
|
||
<groupId>com.mysql</groupId>
|
||
<artifactId>mysql-connector-j</artifactId>
|
||
<version>8.3.0</version>
|
||
</dependency>
|
||
|
||
<!-- HikariCP Connection Pool -->
|
||
<dependency>
|
||
<groupId>com.zaxxer</groupId>
|
||
<artifactId>HikariCP</artifactId>
|
||
<version>5.1.0</version>
|
||
</dependency>
|
||
|
||
<!-- Gson (JSON + Discord + API) -->
|
||
<dependency>
|
||
<groupId>com.google.code.gson</groupId>
|
||
<artifactId>gson</artifactId>
|
||
<version>2.10.1</version>
|
||
</dependency>
|
||
|
||
<!-- OkHttp (Discord Webhooks + InfluxDB Push) -->
|
||
<dependency>
|
||
<groupId>com.squareup.okhttp3</groupId>
|
||
<artifactId>okhttp</artifactId>
|
||
<version>4.12.0</version>
|
||
</dependency>
|
||
</dependencies>
|
||
|
||
<build>
|
||
<finalName>ServerPulse-${project.version}</finalName>
|
||
<plugins>
|
||
|
||
<!-- Maven Shade: Alles in eine JAR -->
|
||
<plugin>
|
||
<groupId>org.apache.maven.plugins</groupId>
|
||
<artifactId>maven-shade-plugin</artifactId>
|
||
<version>3.5.2</version>
|
||
<executions>
|
||
<execution>
|
||
<phase>package</phase>
|
||
<goals><goal>shade</goal></goals>
|
||
<configuration>
|
||
<createDependencyReducedPom>false</createDependencyReducedPom>
|
||
<!-- Relocation verhindert Konflikte mit anderen Plugins -->
|
||
<relocations>
|
||
<relocation>
|
||
<pattern>com.zaxxer.hikari</pattern>
|
||
<shadedPattern>de.serverpulse.libs.hikari</shadedPattern>
|
||
</relocation>
|
||
<relocation>
|
||
<pattern>com.google.gson</pattern>
|
||
<shadedPattern>de.serverpulse.libs.gson</shadedPattern>
|
||
</relocation>
|
||
<relocation>
|
||
<pattern>okhttp3</pattern>
|
||
<shadedPattern>de.serverpulse.libs.okhttp3</shadedPattern>
|
||
</relocation>
|
||
<relocation>
|
||
<pattern>okio</pattern>
|
||
<shadedPattern>de.serverpulse.libs.okio</shadedPattern>
|
||
</relocation>
|
||
<relocation>
|
||
<pattern>com.mysql</pattern>
|
||
<shadedPattern>de.serverpulse.libs.mysql</shadedPattern>
|
||
</relocation>
|
||
<relocation>
|
||
<pattern>kotlin</pattern>
|
||
<shadedPattern>de.serverpulse.libs.kotlin</shadedPattern>
|
||
</relocation>
|
||
</relocations>
|
||
<filters>
|
||
<filter>
|
||
<artifact>*:*</artifact>
|
||
<excludes>
|
||
<exclude>META-INF/*.SF</exclude>
|
||
<exclude>META-INF/*.DSA</exclude>
|
||
<exclude>META-INF/*.RSA</exclude>
|
||
<exclude>META-INF/MANIFEST.MF</exclude>
|
||
</excludes>
|
||
</filter>
|
||
</filters>
|
||
</configuration>
|
||
</execution>
|
||
</executions>
|
||
</plugin>
|
||
|
||
<plugin>
|
||
<groupId>org.apache.maven.plugins</groupId>
|
||
<artifactId>maven-compiler-plugin</artifactId>
|
||
<version>3.13.0</version>
|
||
<configuration>
|
||
<release>${maven.compiler.release}</release>
|
||
</configuration>
|
||
</plugin>
|
||
|
||
<!-- Bricht den Build sofort mit klarer Meldung ab, falls nicht mit JDK 25
|
||
gebaut wird (paper-api 26.2 Klassen haben Class-File-Version 69). -->
|
||
<plugin>
|
||
<groupId>org.apache.maven.plugins</groupId>
|
||
<artifactId>maven-enforcer-plugin</artifactId>
|
||
<version>3.5.0</version>
|
||
<executions>
|
||
<execution>
|
||
<id>enforce-jdk-25</id>
|
||
<goals><goal>enforce</goal></goals>
|
||
<configuration>
|
||
<rules>
|
||
<requireJavaVersion>
|
||
<version>[25,26)</version>
|
||
<message>Dieses Projekt braucht JDK 25 zum Bauen (paper-api 26.2 Class-File-Version 69). JAVA_HOME auf JDK 25 setzen und erneut versuchen.</message>
|
||
</requireJavaVersion>
|
||
</rules>
|
||
</configuration>
|
||
</execution>
|
||
</executions>
|
||
</plugin>
|
||
|
||
</plugins>
|
||
</build>
|
||
</project>
|