mirror of
https://github.com/BentoBoxWorld/BentoBox.git
synced 2024-11-16 07:45:12 +01:00
533 lines
21 KiB
XML
533 lines
21 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>world.bentobox</groupId>
|
|
<artifactId>bentobox</artifactId>
|
|
<version>${revision}</version>
|
|
|
|
<name>BentoBox</name>
|
|
<description>Highly scalable and customizable Minecraft Spigot plugin that enables you to run island-type gamemodes.</description>
|
|
<url>https://github.com/BentoBoxWorld/BentoBox</url>
|
|
<inceptionYear>2017</inceptionYear>
|
|
|
|
<developers>
|
|
<developer>
|
|
<id>Poslovitch</id>
|
|
<email>poslovitch@bentobox.world</email>
|
|
<timezone>1</timezone>
|
|
<roles>
|
|
<role>Project Manager</role>
|
|
<role>Developer</role>
|
|
</roles>
|
|
</developer>
|
|
<developer>
|
|
<id>tastybento</id>
|
|
<email>tastybento@bentobox.world</email>
|
|
<timezone>-8</timezone>
|
|
<roles>
|
|
<role>Developer</role>
|
|
</roles>
|
|
</developer>
|
|
</developers>
|
|
|
|
<scm>
|
|
<connection>scm:git:https://github.com/BentoBoxWorld/BentoBox.git</connection>
|
|
<developerConnection>scm:git:git@github.com:BentoBoxWorld/BentoBox.git</developerConnection>
|
|
<url>https://github.com/BentoBoxWorld/BentoBox</url>
|
|
</scm>
|
|
|
|
<ciManagement>
|
|
<system>jenkins</system>
|
|
<url>https://ci.codemc.org/job/BentoBoxWorld/job/BentoBox</url>
|
|
</ciManagement>
|
|
|
|
<issueManagement>
|
|
<system>GitHub</system>
|
|
<url>https://github.com/BentoBoxWorld/BentoBox/issues</url>
|
|
</issueManagement>
|
|
|
|
<distributionManagement>
|
|
<snapshotRepository>
|
|
<id>codemc-snapshots</id>
|
|
<url>https://repo.codemc.org/repository/maven-snapshots</url>
|
|
</snapshotRepository>
|
|
<repository>
|
|
<id>codemc-releases</id>
|
|
<url>https://repo.codemc.org/repository/maven-releases</url>
|
|
</repository>
|
|
</distributionManagement>
|
|
|
|
<properties>
|
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
|
<java.version>17</java.version>
|
|
<!-- Non-minecraft related dependencies -->
|
|
<powermock.version>2.0.9</powermock.version>
|
|
<!-- Database related dependencies -->
|
|
<mongodb.version>3.12.8</mongodb.version>
|
|
<mariadb.version>3.0.5</mariadb.version>
|
|
<mysql.version>8.0.27</mysql.version>
|
|
<postgresql.version>42.2.18</postgresql.version>
|
|
<hikaricp.version>5.0.1</hikaricp.version>
|
|
<!-- More visible way to change dependency versions -->
|
|
<spigot.version>1.19.3-R0.1-SNAPSHOT</spigot.version>
|
|
<!-- Might differ from the last Spigot release for short periods
|
|
of time -->
|
|
<paper.version>1.19-R0.1-SNAPSHOT</paper.version>
|
|
<bstats.version>3.0.0</bstats.version>
|
|
<vault.version>1.7.1</vault.version>
|
|
<placeholderapi.version>2.10.9</placeholderapi.version>
|
|
<githubapi.version>d5f5e0bbd8</githubapi.version>
|
|
<dynmap.version>3.0-SNAPSHOT</dynmap.version>
|
|
<myworlds.version>1.19.3-v1</myworlds.version>
|
|
<!-- Revision variable removes warning about dynamic version -->
|
|
<revision>${build.version}-SNAPSHOT</revision>
|
|
<!-- Do not change unless you want different name for local builds. -->
|
|
<build.number>-LOCAL</build.number>
|
|
<!-- This allows to change between versions. -->
|
|
<build.version>1.22.0</build.version>
|
|
<sonar.organization>bentobox-world</sonar.organization>
|
|
<sonar.host.url>https://sonarcloud.io</sonar.host.url>
|
|
</properties>
|
|
|
|
<!-- Profiles will allow to automatically change build version. -->
|
|
<profiles>
|
|
<profile>
|
|
<!-- ci profile is activated if exist environment variable BUILD_NUMBER. -->
|
|
<!-- It replaces ${build.number} that is currently '-LOCAL' with
|
|
correct build number from JENKINS machine. -->
|
|
<id>ci</id>
|
|
<activation>
|
|
<property>
|
|
<name>env.BUILD_NUMBER</name>
|
|
</property>
|
|
</activation>
|
|
<properties>
|
|
<!-- Override only if necessary -->
|
|
<build.number>-b${env.BUILD_NUMBER}</build.number>
|
|
</properties>
|
|
</profile>
|
|
<profile>
|
|
<!-- Master profile is activated if exist environment variable
|
|
GIT_BRANCH and its value is origin/master. -->
|
|
<!-- It will replace 'revision' with '${build.version}' so it
|
|
removes '-SNAPSHOT' string at the end. -->
|
|
<!-- Also, as this is release build, build number can be set
|
|
to empty string. -->
|
|
<!-- This profile will be used only if exist environment variable
|
|
GIT_BRANCH with value origin/master. -->
|
|
<id>master</id>
|
|
<activation>
|
|
<property>
|
|
<name>env.GIT_BRANCH</name>
|
|
<value>origin/master</value>
|
|
</property>
|
|
</activation>
|
|
<properties>
|
|
<!-- Override only if necessary -->
|
|
<revision>${build.version}</revision>
|
|
<!-- Empties build number variable. -->
|
|
<build.number></build.number>
|
|
</properties>
|
|
</profile>
|
|
</profiles>
|
|
|
|
<pluginRepositories>
|
|
<pluginRepository>
|
|
<id>apache.snapshots</id>
|
|
<url>https://repository.apache.org/snapshots/</url>
|
|
</pluginRepository>
|
|
</pluginRepositories>
|
|
|
|
<repositories>
|
|
<repository>
|
|
<id>spigot-repo</id>
|
|
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots</url>
|
|
</repository>
|
|
<repository>
|
|
<id>codemc-repo</id>
|
|
<url>https://repo.codemc.org/repository/maven-public</url>
|
|
</repository>
|
|
<repository>
|
|
<id>jitpack.io</id>
|
|
<url>https://jitpack.io</url>
|
|
</repository>
|
|
<repository>
|
|
<id>placeholderapi-repo</id>
|
|
<url>https://repo.extendedclip.com/content/repositories/placeholderapi/</url>
|
|
</repository>
|
|
<repository>
|
|
<id>dynmap-repo</id>
|
|
<url>https://repo.mikeprimm.com/</url>
|
|
</repository>
|
|
<repository>
|
|
<id>papermc</id>
|
|
<url>https://repo.papermc.io/repository/maven-public/</url>
|
|
</repository>
|
|
<repository>
|
|
<!-- This is a temporary reference as the Maven Shade plugin
|
|
that supports Java 16 is not released yet -->
|
|
<id>maven-snapshots</id>
|
|
<url>https://repository.apache.org/content/repositories/snapshots/</url>
|
|
</repository>
|
|
<repository>
|
|
<id>minecraft-repo</id>
|
|
<url>https://libraries.minecraft.net/</url>
|
|
</repository>
|
|
<!-- Spigot NMS required for world regeneration :( -->
|
|
<repository>
|
|
<id>nms-repo</id>
|
|
<url>https://repo.codemc.io/repository/nms/</url>
|
|
</repository>
|
|
<!-- Used for MyWorlds hook -->
|
|
<repository>
|
|
<id>MG-Dev Jenkins CI Maven Repository</id>
|
|
<url>https://ci.mg-dev.eu/plugin/repository/everything</url>
|
|
</repository>
|
|
</repositories>
|
|
|
|
<dependencies>
|
|
<!-- Spigot API -->
|
|
<dependency>
|
|
<groupId>org.spigotmc</groupId>
|
|
<artifactId>spigot-api</artifactId>
|
|
<version>${spigot.version}</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<!-- Paper API -->
|
|
<dependency>
|
|
<groupId>io.papermc.paper</groupId>
|
|
<artifactId>paper-api</artifactId>
|
|
<version>${paper.version}</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<!-- AuthLib. Used for Head Getter. -->
|
|
<dependency>
|
|
<groupId>com.mojang</groupId>
|
|
<artifactId>authlib</artifactId>
|
|
<version>3.16.29</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<!-- Metrics -->
|
|
<dependency>
|
|
<groupId>org.bstats</groupId>
|
|
<artifactId>bstats-bukkit</artifactId>
|
|
<version>${bstats.version}</version>
|
|
</dependency>
|
|
<!-- Mockito (Unit testing) -->
|
|
<dependency>
|
|
<groupId>org.mockito</groupId>
|
|
<artifactId>mockito-core</artifactId>
|
|
<version>3.11.1</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.powermock</groupId>
|
|
<artifactId>powermock-module-junit4</artifactId>
|
|
<version>${powermock.version}</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.powermock</groupId>
|
|
<artifactId>powermock-api-mockito2</artifactId>
|
|
<version>${powermock.version}</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<!-- Database -->
|
|
<dependency>
|
|
<groupId>org.mongodb</groupId>
|
|
<artifactId>mongodb-driver</artifactId>
|
|
<version>${mongodb.version}</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<!-- HikariCP database handler -->
|
|
<dependency>
|
|
<groupId>com.zaxxer</groupId>
|
|
<artifactId>HikariCP</artifactId>
|
|
<version>${hikaricp.version}</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<!-- Vault: as their maven repo is down, we need to get it from jitpack -->
|
|
<!-- See https://github.com/MilkBowl/VaultAPI/issues/69 -->
|
|
<dependency>
|
|
<groupId>com.github.MilkBowl</groupId>
|
|
<artifactId>VaultAPI</artifactId>
|
|
<version>${vault.version}</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<!-- Placeholders -->
|
|
<dependency>
|
|
<groupId>me.clip</groupId>
|
|
<artifactId>placeholderapi</artifactId>
|
|
<version>${placeholderapi.version}</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<!-- Hooks -->
|
|
<dependency>
|
|
<groupId>us.dynmap</groupId>
|
|
<artifactId>dynmap-api</artifactId>
|
|
<version>${dynmap.version}</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.bergerkiller.bukkit</groupId>
|
|
<artifactId>MyWorlds</artifactId>
|
|
<version>${myworlds.version}</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<!-- Shaded APIs -->
|
|
<dependency>
|
|
<groupId>com.github.TheBusyBiscuit</groupId>
|
|
<artifactId>GitHubWebAPI4Java</artifactId>
|
|
<version>${githubapi.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.github.Marcono1234</groupId>
|
|
<artifactId>gson-record-type-adapter-factory</artifactId>
|
|
<version>0.3.0</version>
|
|
</dependency>
|
|
<!-- Static analysis -->
|
|
<!-- We are using Eclipse's annotations. If you're using IDEA, update
|
|
your project settings to take these into account for in real time static
|
|
analysis -->
|
|
<dependency>
|
|
<groupId>org.eclipse.jdt</groupId>
|
|
<artifactId>org.eclipse.jdt.annotation</artifactId>
|
|
<version>2.2.600</version>
|
|
</dependency>
|
|
<!-- PaperLib -->
|
|
<dependency>
|
|
<groupId>io.papermc</groupId>
|
|
<artifactId>paperlib</artifactId>
|
|
<version>1.0.6</version>
|
|
<scope>compile</scope>
|
|
</dependency>
|
|
<!-- LangUtils -->
|
|
<dependency>
|
|
<groupId>com.github.apachezy</groupId>
|
|
<artifactId>LangUtils</artifactId>
|
|
<version>3.2.2</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<!-- Spigot NMS. Used for chunk deletion and pasting. -->
|
|
<dependency>
|
|
<groupId>org.spigotmc</groupId>
|
|
<artifactId>spigot</artifactId>
|
|
<version>${spigot.version}</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
</dependencies>
|
|
|
|
<build>
|
|
<!-- By default ${revision} is ${build.version}-SNAPSHOT -->
|
|
<!-- If GIT_BRANCH variable is set to origin/master, then it will
|
|
be only ${build.version}. -->
|
|
|
|
<!-- By default ${build.number} is -LOCAL. -->
|
|
<!-- If the BUILD_NUMBER variable is set, then it will be -b[number]. -->
|
|
<!-- If GIT_BRANCH variable is set to origin/master, then it will
|
|
be the empty string. -->
|
|
<finalName>${project.name}-${revision}${build.number}</finalName>
|
|
|
|
<defaultGoal>clean package</defaultGoal>
|
|
<resources>
|
|
<resource>
|
|
<directory>src/main/resources</directory>
|
|
<filtering>true</filtering>
|
|
</resource>
|
|
<resource>
|
|
<directory>src/main/resources/locales</directory>
|
|
<targetPath>./locales</targetPath>
|
|
<filtering>false</filtering>
|
|
</resource>
|
|
</resources>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-clean-plugin</artifactId>
|
|
<version>3.1.0</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-resources-plugin</artifactId>
|
|
<version>3.2.0</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-compiler-plugin</artifactId>
|
|
<version>3.8.1</version>
|
|
<configuration>
|
|
<release>${java.version}</release>
|
|
<!-- <source>${java.version}</source> <target>${java.version}</target> -->
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
<version>3.0.0-M5</version>
|
|
<configuration>
|
|
<argLine>
|
|
--add-opens java.base/java.lang=ALL-UNNAMED
|
|
--add-opens java.base/java.math=ALL-UNNAMED
|
|
--add-opens java.base/java.io=ALL-UNNAMED
|
|
--add-opens java.base/java.util=ALL-UNNAMED
|
|
--add-opens
|
|
java.base/java.util.stream=ALL-UNNAMED
|
|
--add-opens java.base/java.text=ALL-UNNAMED
|
|
--add-opens
|
|
java.base/java.util.regex=ALL-UNNAMED
|
|
--add-opens
|
|
java.base/java.nio.channels.spi=ALL-UNNAMED
|
|
--add-opens java.base/sun.nio.ch=ALL-UNNAMED
|
|
--add-opens java.base/java.net=ALL-UNNAMED
|
|
--add-opens
|
|
java.base/java.util.concurrent=ALL-UNNAMED
|
|
--add-opens java.base/sun.nio.fs=ALL-UNNAMED
|
|
--add-opens java.base/sun.nio.cs=ALL-UNNAMED
|
|
--add-opens java.base/java.nio.file=ALL-UNNAMED
|
|
--add-opens
|
|
java.base/java.nio.charset=ALL-UNNAMED
|
|
--add-opens
|
|
java.base/java.lang.reflect=ALL-UNNAMED
|
|
--add-opens
|
|
java.logging/java.util.logging=ALL-UNNAMED
|
|
--add-opens java.base/java.lang.ref=ALL-UNNAMED
|
|
--add-opens java.base/java.util.jar=ALL-UNNAMED
|
|
--add-opens java.base/java.util.zip=ALL-UNNAMED
|
|
</argLine>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-jar-plugin</artifactId>
|
|
<version>3.2.0</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-javadoc-plugin</artifactId>
|
|
<version>3.4.1</version>
|
|
<configuration>
|
|
<source>${java.version}</source>
|
|
<show>private</show>
|
|
<quiet>true</quiet>
|
|
<failOnError>false</failOnError>
|
|
<additionalJOption>-Xdoclint:none</additionalJOption>
|
|
<!-- To compile with Java 11, this tag may be required -->
|
|
<javadocExecutable>${java.home}/bin/javadoc</javadocExecutable>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<id>attach-javadocs</id>
|
|
<phase>package</phase>
|
|
<goals>
|
|
<goal>jar</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-source-plugin</artifactId>
|
|
<version>3.0.1</version>
|
|
<executions>
|
|
<execution>
|
|
<id>attach-sources</id>
|
|
<phase>install</phase>
|
|
<goals>
|
|
<goal>jar-no-fork</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-shade-plugin</artifactId>
|
|
<version>3.3.1-SNAPSHOT</version>
|
|
<configuration>
|
|
<minimizeJar>true</minimizeJar>
|
|
<relocations>
|
|
<relocation>
|
|
<pattern>org.bstats</pattern>
|
|
<shadedPattern>world.bentobox.bentobox.util.metrics</shadedPattern>
|
|
</relocation>
|
|
<relocation>
|
|
<pattern>io.github.TheBusyBiscuit.GitHubWebAPI4Java</pattern>
|
|
<shadedPattern>world.bentobox.bentobox.api.github</shadedPattern>
|
|
</relocation>
|
|
<relocation>
|
|
<pattern>io.papermc.lib</pattern>
|
|
<shadedPattern>world.bentobox.bentobox.paperlib</shadedPattern> <!-- Replace this -->
|
|
</relocation>
|
|
</relocations>
|
|
<artifactSet>
|
|
<excludes>
|
|
<exclude>org.apache.maven.shared:*</exclude>
|
|
<exclude>org.apache.maven:*</exclude>
|
|
<exclude>com.google.code.gson:*</exclude>
|
|
<exclude>org.mongodb:*</exclude>
|
|
<exclude>org.eclipse.jdt:*</exclude>
|
|
</excludes>
|
|
</artifactSet>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<phase>package</phase>
|
|
<goals>
|
|
<goal>shade</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-install-plugin</artifactId>
|
|
<version>2.5.2</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-deploy-plugin</artifactId>
|
|
<version>2.8.2</version>
|
|
<executions>
|
|
<execution>
|
|
<id>default-deploy</id>
|
|
<phase>deploy</phase>
|
|
<goals>
|
|
<goal>deploy</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.jacoco</groupId>
|
|
<artifactId>jacoco-maven-plugin</artifactId>
|
|
<version>0.8.7</version>
|
|
<configuration>
|
|
<append>true</append>
|
|
<excludes>
|
|
<!-- This is required to prevent Jacoco from adding
|
|
synthetic fields to a JavaBean class (causes errors in testing) -->
|
|
<exclude>**/*Names*</exclude>
|
|
</excludes>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<id>pre-unit-test</id>
|
|
<goals>
|
|
<goal>prepare-agent</goal>
|
|
</goals>
|
|
</execution>
|
|
<execution>
|
|
<id>post-unit-test</id>
|
|
<goals>
|
|
<goal>report</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</project>
|