365 lines
10 KiB
XML
365 lines
10 KiB
XML
<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>
|
|
<artifactId>tdlight-java</artifactId>
|
|
<name>TDLight Java Wrapper</name>
|
|
<packaging>jar</packaging>
|
|
<parent>
|
|
<groupId>it.tdlight</groupId>
|
|
<version>${revision}</version>
|
|
<artifactId>tdlight-java-parent</artifactId>
|
|
<relativePath>../parent/pom.xml</relativePath>
|
|
</parent>
|
|
<properties>
|
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
<revision>1.0.0.0-SNAPSHOT</revision>
|
|
<tdlight.api.artifact.id>tdlight-api-legacy</tdlight.api.artifact.id>
|
|
</properties>
|
|
<repositories>
|
|
<repository>
|
|
<id>mchv-release</id>
|
|
<name>MCHV Release Apache Maven Packages</name>
|
|
<url>https://mvn.mchv.eu/repository/mchv</url>
|
|
</repository>
|
|
<repository>
|
|
<id>mchv-snapshot</id>
|
|
<name>MCHV Snapshot Apache Maven Packages</name>
|
|
<url>https://mvn.mchv.eu/repository/mchv-snapshot</url>
|
|
</repository>
|
|
</repositories>
|
|
<distributionManagement>
|
|
<repository>
|
|
<id>mchv-release-distribution</id>
|
|
<name>MCHV Release Apache Maven Packages Distribution</name>
|
|
<url>https://mvn.mchv.eu/repository/mchv</url>
|
|
</repository>
|
|
<snapshotRepository>
|
|
<id>mchv-snapshot-distribution</id>
|
|
<name>MCHV Snapshot Apache Maven Packages Distribution</name>
|
|
<url>https://mvn.mchv.eu/repository/mchv-snapshot</url>
|
|
</snapshotRepository>
|
|
</distributionManagement>
|
|
<scm>
|
|
<connection>scm:git:https://git.ignuranza.net/tdlight-team/tdlight-java.git</connection>
|
|
<developerConnection>scm:git:https://git.ignuranza.net/tdlight-team/tdlight-java.git</developerConnection>
|
|
<tag>HEAD</tag>
|
|
</scm>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>it.tdlight</groupId>
|
|
<artifactId>${tdlight.api.artifact.id}</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>it.unimi.dsi</groupId>
|
|
<artifactId>fastutil</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.slf4j</groupId>
|
|
<artifactId>slf4j-api</artifactId>
|
|
<version>2.0.3</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.reactivestreams</groupId>
|
|
<artifactId>reactive-streams</artifactId>
|
|
<version>1.0.4</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>net.harawata</groupId>
|
|
<artifactId>appdirs</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.google.zxing</groupId>
|
|
<artifactId>core</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.junit.jupiter</groupId>
|
|
<artifactId>junit-jupiter-engine</artifactId>
|
|
<version>5.9.0</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
</dependencies>
|
|
<dependencyManagement>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>it.tdlight</groupId>
|
|
<artifactId>tdlight-java-bom</artifactId>
|
|
<version>${revision}</version>
|
|
<type>pom</type>
|
|
<scope>import</scope>
|
|
</dependency>
|
|
</dependencies>
|
|
</dependencyManagement>
|
|
<profiles>
|
|
<profile>
|
|
<id>releaseDir</id>
|
|
<build>
|
|
<directory>target-release</directory>
|
|
</build>
|
|
</profile>
|
|
<profile>
|
|
<id>snapshotDir</id>
|
|
<build>
|
|
<directory>target-snapshot</directory>
|
|
</build>
|
|
</profile>
|
|
<profile>
|
|
<id>jdk-with-sealed-interfaces</id>
|
|
<activation>
|
|
<jdk>[17,)</jdk>
|
|
</activation>
|
|
<properties>
|
|
<tdlight.api.artifact.id>tdlight-api-sealed</tdlight.api.artifact.id>
|
|
</properties>
|
|
</profile>
|
|
<profile>
|
|
<id>jdk-with-legacy-interfaces</id>
|
|
<activation>
|
|
<jdk>(,17)</jdk>
|
|
</activation>
|
|
<properties>
|
|
<tdlight.api.artifact.id>tdlight-api-legacy</tdlight.api.artifact.id>
|
|
</properties>
|
|
</profile>
|
|
</profiles>
|
|
<build>
|
|
<sourceDirectory>../src/main/java</sourceDirectory>
|
|
<testSourceDirectory>../src/test/java</testSourceDirectory>
|
|
<plugins>
|
|
<plugin>
|
|
<artifactId>maven-clean-plugin</artifactId>
|
|
<version>3.1.0</version>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-resources-plugin</artifactId>
|
|
<version>3.0.2</version>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-source-plugin</artifactId>
|
|
<version>3.2.1</version>
|
|
<executions>
|
|
<execution>
|
|
<id>attach-sources</id>
|
|
<goals>
|
|
<goal>jar</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-javadoc-plugin</artifactId>
|
|
<version>3.2.0</version>
|
|
<configuration>
|
|
<source>17</source>
|
|
<additionalOptions>-html5</additionalOptions>
|
|
<level>public</level>
|
|
<verbose>false</verbose>
|
|
<quiet>true</quiet>
|
|
<additionalOptions>-Xdoclint:none</additionalOptions>
|
|
<additionalJOption>-Xdoclint:none</additionalJOption>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<id>attach-javadocs</id>
|
|
<goals>
|
|
<goal>jar</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<!-- ensure the project is compiling with JDK 9+ -->
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-enforcer-plugin</artifactId>
|
|
<version>3.0.0-M3</version>
|
|
<executions>
|
|
<execution>
|
|
<id>enforce-jdk9</id>
|
|
<goals>
|
|
<goal>enforce</goal>
|
|
</goals>
|
|
<configuration>
|
|
<rules>
|
|
<requireJavaVersion>
|
|
<version>[1.9,)</version>
|
|
<message>JDK 9+ is required for compilation</message>
|
|
</requireJavaVersion>
|
|
</rules>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<!-- compile sources -->
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-compiler-plugin</artifactId>
|
|
<version>3.8.1</version>
|
|
<configuration>
|
|
<encoding>UTF-8</encoding>
|
|
<excludes>
|
|
<exclude>it/tdlight/tdlib/ClientManager.java</exclude>
|
|
</excludes>
|
|
<release>8</release>
|
|
</configuration>
|
|
<executions>
|
|
<!-- disable default phase due to fixed id and position in lifecycle -->
|
|
<execution>
|
|
<id>default-compile</id>
|
|
<phase>none</phase>
|
|
<!-- specify source/target for IDE integration -->
|
|
<configuration>
|
|
<release>9</release>
|
|
</configuration>
|
|
</execution>
|
|
<!-- compile sources with Java 11 -->
|
|
<execution>
|
|
<id>java-11-module-compile</id>
|
|
<goals>
|
|
<goal>compile</goal>
|
|
</goals>
|
|
<configuration>
|
|
<release>11</release>
|
|
<compileSourceRoots>
|
|
<compileSourceRoot>../src/main/java11</compileSourceRoot>
|
|
</compileSourceRoots>
|
|
<multiReleaseOutput>true</multiReleaseOutput>
|
|
</configuration>
|
|
</execution>
|
|
<!-- compile sources with Java 9 to generate and validate module-info.java -->
|
|
<execution>
|
|
<id>java-9-module-compile</id>
|
|
<goals>
|
|
<goal>compile</goal>
|
|
</goals>
|
|
<configuration>
|
|
<release>9</release>
|
|
</configuration>
|
|
</execution>
|
|
<!-- recompile sources as Java 8 to overwrite Java 9 class files, except module-info.java -->
|
|
<execution>
|
|
<id>java-8-compile</id>
|
|
<goals>
|
|
<goal>compile</goal>
|
|
</goals>
|
|
<configuration>
|
|
<!-- specify JDK 9+ release flag to ensure no classes/methods later than Java 8 are used accidentally -->
|
|
<release>8</release>
|
|
<!-- exclude module-info.java from the compilation, as it is unsupported by Java 8 -->
|
|
<excludes>
|
|
<exclude>it/tdlight/tdlib/ClientManager.java</exclude>
|
|
<exclude>module-info.java</exclude>
|
|
</excludes>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>flatten-maven-plugin</artifactId>
|
|
<version>1.1.0</version>
|
|
<configuration>
|
|
<updatePomFile>true</updatePomFile>
|
|
<flattenMode>oss</flattenMode>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<id>flatten</id>
|
|
<phase>process-resources</phase>
|
|
<goals>
|
|
<goal>flatten</goal>
|
|
</goals>
|
|
</execution>
|
|
<execution>
|
|
<id>flatten.clean</id>
|
|
<phase>clean</phase>
|
|
<goals>
|
|
<goal>clean</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-jar-plugin</artifactId>
|
|
<version>3.2.0</version>
|
|
<configuration>
|
|
<archive>
|
|
<manifestEntries>
|
|
<Multi-Release>true</Multi-Release>
|
|
</manifestEntries>
|
|
</archive>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-install-plugin</artifactId>
|
|
<version>3.0.0-M1</version>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-deploy-plugin</artifactId>
|
|
<version>2.8.2</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>templating-maven-plugin</artifactId>
|
|
<version>1.0.0</version>
|
|
<executions>
|
|
<execution>
|
|
<id>filtering-java-templates</id>
|
|
<goals>
|
|
<goal>filter-sources</goal>
|
|
</goals>
|
|
<configuration>
|
|
<sourceDirectory>../src/main/java-templates-tdlight</sourceDirectory>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
<version>3.0.0-M5</version>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>org.junit.jupiter</groupId>
|
|
<artifactId>junit-jupiter-engine</artifactId>
|
|
<version>5.9.0</version>
|
|
</dependency>
|
|
</dependencies>
|
|
</plugin>
|
|
</plugins>
|
|
<pluginManagement>
|
|
<plugins>
|
|
<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
|
|
<plugin>
|
|
<groupId>org.eclipse.m2e</groupId>
|
|
<artifactId>lifecycle-mapping</artifactId>
|
|
<version>1.0.0</version>
|
|
<configuration>
|
|
<lifecycleMappingMetadata>
|
|
<pluginExecutions>
|
|
<pluginExecution>
|
|
<pluginExecutionFilter>
|
|
<groupId>
|
|
org.codehaus.mojo
|
|
</groupId>
|
|
<artifactId>
|
|
flatten-maven-plugin
|
|
</artifactId>
|
|
<versionRange>
|
|
[1.1.0,)
|
|
</versionRange>
|
|
<goals>
|
|
<goal>flatten</goal>
|
|
</goals>
|
|
</pluginExecutionFilter>
|
|
<action>
|
|
<ignore></ignore>
|
|
</action>
|
|
</pluginExecution>
|
|
</pluginExecutions>
|
|
</lifecycleMappingMetadata>
|
|
</configuration>
|
|
</plugin>
|
|
</plugins>
|
|
</pluginManagement>
|
|
</build>
|
|
</project>
|