529 lines
15 KiB
Plaintext
529 lines
15 KiB
Plaintext
<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>com.esotericsoftware</groupId>
|
|
<artifactId>kryo-parent</artifactId>
|
|
<version>5.5.0</version>
|
|
<packaging>pom</packaging>
|
|
|
|
<name>Kryo Parent</name>
|
|
<description>Fast, efficient Java serialization. This is the parent POM that defines common settings and lists the modules.</description>
|
|
<url>https://github.com/EsotericSoftware/kryo</url>
|
|
|
|
<licenses>
|
|
<license>
|
|
<name>3-Clause BSD License</name>
|
|
<url>https://opensource.org/licenses/BSD-3-Clause</url>
|
|
<distribution>repo</distribution>
|
|
</license>
|
|
</licenses>
|
|
|
|
<scm>
|
|
<url>https://github.com/EsotericSoftware/kryo</url>
|
|
<connection>scm:git:git@github.com:EsotericSoftware/kryo.git</connection>
|
|
<developerConnection>scm:git:git@github.com:EsotericSoftware/kryo.git</developerConnection>
|
|
<tag>kryo-parent-5.5.0</tag>
|
|
</scm>
|
|
|
|
<distributionManagement>
|
|
<snapshotRepository>
|
|
<id>sonatype-nexus-snapshots</id>
|
|
<name>Sonatype Nexus Snapshots</name>
|
|
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
|
|
</snapshotRepository>
|
|
<repository>
|
|
<id>sonatype-nexus-staging</id>
|
|
<name>Sonatype Nexus Releases</name>
|
|
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
|
|
</repository>
|
|
</distributionManagement>
|
|
|
|
<developers>
|
|
<developer>
|
|
<id>nathan.sweet</id>
|
|
<name>Nathan Sweet</name>
|
|
<email>admin@esotericsoftware.com</email>
|
|
</developer>
|
|
</developers>
|
|
|
|
<properties>
|
|
<kryo.root>${basedir}</kryo.root>
|
|
<kryo.major.version>5</kryo.major.version>
|
|
<javac.target>1.8</javac.target>
|
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
<junit.version>5.9.2</junit.version>
|
|
<kotlin.version>1.8.20</kotlin.version>
|
|
<kotlin.compiler.incremental>true</kotlin.compiler.incremental>
|
|
</properties>
|
|
|
|
<modules>
|
|
<module>pom-main.xml</module>
|
|
<module>pom-versioned.xml</module>
|
|
<module>benchmarks</module>
|
|
</modules>
|
|
|
|
<dependencies>
|
|
<!-- Tests. -->
|
|
<dependency>
|
|
<groupId>org.junit.jupiter</groupId>
|
|
<artifactId>junit-jupiter-api</artifactId>
|
|
<version>${junit.version}</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.junit.jupiter</groupId>
|
|
<artifactId>junit-jupiter-engine</artifactId>
|
|
<version>${junit.version}</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.junit.jupiter</groupId>
|
|
<artifactId>junit-jupiter-params</artifactId>
|
|
<version>${junit.version}</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.commons</groupId>
|
|
<artifactId>commons-lang3</artifactId>
|
|
<version>3.12.0</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
</dependencies>
|
|
|
|
<build>
|
|
<sourceDirectory>src</sourceDirectory>
|
|
<testSourceDirectory>test</testSourceDirectory>
|
|
|
|
<pluginManagement>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>build-helper-maven-plugin</artifactId>
|
|
<version>3.3.0</version>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-clean-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>
|
|
<source>${javac.target}</source>
|
|
<target>${javac.target}</target>
|
|
<encoding>utf-8</encoding>
|
|
</configuration>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-install-plugin</artifactId>
|
|
<version>3.0.1</version>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-deploy-plugin</artifactId>
|
|
<version>3.1.1</version>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-jar-plugin</artifactId>
|
|
<version>3.3.0</version>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-site-plugin</artifactId>
|
|
<version>3.9.1</version>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
<version>3.0.0</version>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<artifactId>maven-resources-plugin</artifactId>
|
|
<version>3.3.0</version>
|
|
<executions>
|
|
<!-- Disable resources (project has none). -->
|
|
<execution>
|
|
<id>default-resources</id>
|
|
<phase>none</phase>
|
|
</execution>
|
|
<execution>
|
|
<id>default-testResources</id>
|
|
<phase>none</phase>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-javadoc-plugin</artifactId>
|
|
<version>3.4.1</version>
|
|
<configuration>
|
|
<!-- Required for java8, so that javadoc errors don't fail the build. -->
|
|
<doclint>none</doclint>
|
|
<!-- Required for build with java11, to prevent "error: package sun.nio.ch is not visible" failing javadoc -->
|
|
<source>8</source>
|
|
</configuration>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>findbugs-maven-plugin</artifactId>
|
|
<version>3.0.5</version>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-release-plugin</artifactId>
|
|
<version>2.5.3</version>
|
|
<configuration>
|
|
<autoVersionSubmodules>true</autoVersionSubmodules>
|
|
<useReleaseProfile>false</useReleaseProfile>
|
|
<releaseProfiles>release</releaseProfiles>
|
|
<arguments>-Prelease</arguments>
|
|
<goals>deploy</goals>
|
|
<!-- Don't run clean, because this would delete the kryo artifact, which would fail the shade plugin
|
|
because the kryo jar would no longer exist.
|
|
https://maven.apache.org/maven-release/maven-release-plugin/prepare-mojo.html#preparationGoals
|
|
-->
|
|
<preparationGoals>verify</preparationGoals>
|
|
</configuration>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.apache.felix</groupId>
|
|
<artifactId>maven-bundle-plugin</artifactId>
|
|
<version>5.1.8</version>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-shade-plugin</artifactId>
|
|
<version>3.4.1</version>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-enforcer-plugin</artifactId>
|
|
<version>3.1.0</version>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>net.revelc.code.formatter</groupId>
|
|
<artifactId>formatter-maven-plugin</artifactId>
|
|
<version>2.21.0</version>
|
|
<configuration>
|
|
<configFile>${kryo.root}/eclipse/code-format.xml</configFile>
|
|
<lineEnding>KEEP</lineEnding>
|
|
<compilerSource>${javac.target}</compilerSource>
|
|
<compilerCompliance>${javac.target}</compilerCompliance>
|
|
<compilerTargetPlatform>${javac.target}</compilerTargetPlatform>
|
|
<directories>
|
|
<directory>${project.build.sourceDirectory}</directory>
|
|
</directories>
|
|
<excludes>
|
|
<exclude>**/benchmarks/**/*.java</exclude>
|
|
</excludes>
|
|
</configuration>
|
|
</plugin>
|
|
</plugins>
|
|
</pluginManagement>
|
|
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-enforcer-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>enforce-maven</id>
|
|
<goals>
|
|
<goal>enforce</goal>
|
|
</goals>
|
|
<configuration>
|
|
<rules>
|
|
<requireMavenVersion>
|
|
<version>3.5.0</version>
|
|
</requireMavenVersion>
|
|
</rules>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
|
|
<profiles>
|
|
<profile>
|
|
<id>release</id>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-source-plugin</artifactId>
|
|
<version>3.2.1</version>
|
|
<executions>
|
|
<execution>
|
|
<id>attach-sources</id>
|
|
<goals>
|
|
<goal>jar-no-fork</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-javadoc-plugin</artifactId>
|
|
<version>3.3.1</version>
|
|
<executions>
|
|
<execution>
|
|
<id>attach-javadocs</id>
|
|
<goals>
|
|
<goal>jar</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-gpg-plugin</artifactId>
|
|
<version>3.0.1</version>
|
|
<executions>
|
|
<execution>
|
|
<id>sign-artifacts</id>
|
|
<phase>verify</phase>
|
|
<goals>
|
|
<goal>sign</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
<profile>
|
|
<id>requireSnapshot</id>
|
|
<!-- This profile is activated by the "-P requireSnapshot" switch to
|
|
be able to deploy SNAPSHOTs only (which is not allowed for releases) -->
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-enforcer-plugin</artifactId>
|
|
<version>3.2.1</version>
|
|
<executions>
|
|
<execution>
|
|
<goals>
|
|
<goal>enforce</goal>
|
|
</goals>
|
|
<configuration>
|
|
<rules>
|
|
<evaluateBeanshell>
|
|
<condition>"${project.version}".endsWith("-SNAPSHOT")</condition>
|
|
<message>Only build -SNAPSHOT versions.</message>
|
|
</evaluateBeanshell>
|
|
</rules>
|
|
<fail>true</fail>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
<!-- Include any tests that require kotlin -->
|
|
<profile>
|
|
<id>kotlin</id>
|
|
<activation>
|
|
<property>
|
|
<name>!skipKotlin</name>
|
|
</property>
|
|
</activation>
|
|
<build>
|
|
<pluginManagement>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>build-helper-maven-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>add-test-source</id>
|
|
<phase>generate-test-sources</phase>
|
|
<goals>
|
|
<goal>add-test-source</goal>
|
|
</goals>
|
|
<configuration>
|
|
<sources>
|
|
<source>test-kotlin</source>
|
|
</sources>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</pluginManagement>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.jetbrains.kotlin</groupId>
|
|
<artifactId>kotlin-maven-plugin</artifactId>
|
|
<version>${kotlin.version}</version>
|
|
<executions>
|
|
<execution>
|
|
<id>test-compile</id>
|
|
<phase>test-compile</phase>
|
|
<goals>
|
|
<goal>test-compile</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>org.jetbrains.kotlin</groupId>
|
|
<artifactId>kotlin-stdlib</artifactId>
|
|
<version>${kotlin.version}</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
</dependencies>
|
|
</profile>
|
|
<!-- Include any tests that require JDK11+ -->
|
|
<profile>
|
|
<id>jdk11ge</id>
|
|
<activation>
|
|
<jdk>[11,</jdk>
|
|
</activation>
|
|
<build>
|
|
<pluginManagement>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>build-helper-maven-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>add-test-source</id>
|
|
<phase>generate-test-sources</phase>
|
|
<goals>
|
|
<goal>add-test-source</goal>
|
|
</goals>
|
|
<configuration>
|
|
<sources>
|
|
<source>test-kotlin</source>
|
|
<source>test-jdk11</source>
|
|
</sources>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-compiler-plugin</artifactId>
|
|
</plugin>
|
|
</plugins>
|
|
</pluginManagement>
|
|
</build>
|
|
</profile>
|
|
<!-- Include any tests that require JDK17+ -->
|
|
<profile>
|
|
<id>jdk17ge</id>
|
|
<activation>
|
|
<jdk>[17,</jdk>
|
|
</activation>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
<configuration>
|
|
<excludes>
|
|
<exclude>**/java11/*Test.java</exclude>
|
|
</excludes>
|
|
</configuration>
|
|
</plugin>
|
|
</plugins>
|
|
<pluginManagement>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>build-helper-maven-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>add-test-source</id>
|
|
<phase>generate-test-sources</phase>
|
|
<goals>
|
|
<goal>add-test-source</goal>
|
|
</goals>
|
|
<configuration>
|
|
<sources>
|
|
<source>test-kotlin</source>
|
|
<source>test-jdk11</source>
|
|
<source>test-jdk17</source>
|
|
</sources>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-compiler-plugin</artifactId>
|
|
<configuration>
|
|
<!-- Enable Java 17+ for all sources so that Intellij picks the right language level -->
|
|
<source>${java.vm.specification.version}</source>
|
|
<target>${java.vm.specification.version}</target>
|
|
<compilerArgs>
|
|
<arg>-parameters</arg>
|
|
<arg>--enable-preview</arg>
|
|
<arg>--add-exports=java.base/jdk.internal.ref=ALL-UNNAMED</arg>
|
|
<arg>--add-exports=java.base/sun.nio.ch=ALL-UNNAMED</arg>
|
|
</compilerArgs>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
<configuration>
|
|
<argLine>
|
|
--enable-preview
|
|
--add-opens java.base/sun.nio.ch=ALL-UNNAMED
|
|
--add-opens java.base/java.nio=ALL-UNNAMED
|
|
--add-opens java.base/java.util.concurrent.atomic=ALL-UNNAMED
|
|
</argLine>
|
|
</configuration>
|
|
</plugin>
|
|
</plugins>
|
|
</pluginManagement>
|
|
</build>
|
|
</profile>
|
|
</profiles>
|
|
|
|
<repositories>
|
|
<repository>
|
|
<id>sonatype-releases</id>
|
|
<name>sonatype releases repo</name>
|
|
<url>https://oss.sonatype.org/content/repositories/releases</url>
|
|
</repository>
|
|
<repository>
|
|
<id>sonatype-snapshots</id>
|
|
<name>sonatype snapshots repo</name>
|
|
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
|
|
<releases>
|
|
<enabled>false</enabled>
|
|
</releases>
|
|
<snapshots>
|
|
<enabled>true</enabled>
|
|
</snapshots>
|
|
</repository>
|
|
</repositories>
|
|
</project>
|