mirror of https://github.com/apache/iotdb
2008 lines
94 KiB
XML
2008 lines
94 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<!--
|
||
|
||
Licensed to the Apache Software Foundation (ASF) under one
|
||
or more contributor license agreements. See the NOTICE file
|
||
distributed with this work for additional information
|
||
regarding copyright ownership. The ASF licenses this file
|
||
to you under the Apache License, Version 2.0 (the
|
||
"License"); you may not use this file except in compliance
|
||
with the License. You may obtain a copy of the License at
|
||
|
||
http://www.apache.org/licenses/LICENSE-2.0
|
||
|
||
Unless required by applicable law or agreed to in writing,
|
||
software distributed under the License is distributed on an
|
||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||
KIND, either express or implied. See the License for the
|
||
specific language governing permissions and limitations
|
||
under the License.
|
||
|
||
-->
|
||
<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>
|
||
<parent>
|
||
<groupId>org.apache</groupId>
|
||
<artifactId>apache</artifactId>
|
||
<version>31</version>
|
||
</parent>
|
||
<groupId>org.apache.iotdb</groupId>
|
||
<artifactId>iotdb-parent</artifactId>
|
||
<version>2.0.0-SNAPSHOT</version>
|
||
<packaging>pom</packaging>
|
||
<name>Apache IoTDB Project Parent POM</name>
|
||
<description>This is the top level project that builds, packages the tsfile, iotdb engine, jdbc, and integration libs.</description>
|
||
<modules>
|
||
<module>iotdb-api</module>
|
||
<module>iotdb-client</module>
|
||
<module>iotdb-core</module>
|
||
<module>iotdb-protocol</module>
|
||
<module>distribution</module>
|
||
<module>example</module>
|
||
<module>library-udf</module>
|
||
</modules>
|
||
<properties>
|
||
<!-- This was the last version to support Java 8 -->
|
||
<airlift-units.version>1.7</airlift-units.version>
|
||
<airlift.version>206</airlift.version>
|
||
<!--airlift-stats.version>235</airlift-stats.version-->
|
||
<airline.version>0.9</airline.version>
|
||
<!-- This was the last version to support Java 8 -->
|
||
<antlr4.version>4.9.3</antlr4.version>
|
||
<!-- By default, the argLine is empty-->
|
||
<argLine/>
|
||
<awaitility.version>4.2.0</awaitility.version>
|
||
<boost.include.dir/>
|
||
<!-- This was the last version to support Java 8 -->
|
||
<caffeine.version>2.9.3</caffeine.version>
|
||
<cglib.version>3.3.0</cglib.version>
|
||
<checker-qual.version>3.38.0</checker-qual.version>
|
||
<cmake.build.type>Release</cmake.build.type>
|
||
<commons-cli.version>1.5.0</commons-cli.version>
|
||
<commons-codec.version>1.16.1</commons-codec.version>
|
||
<commons-csv.version>1.10.0</commons-csv.version>
|
||
<commons-io.version>2.13.0</commons-io.version>
|
||
<commons-jexl3.version>3.3</commons-jexl3.version>
|
||
<commons-lang3.version>3.13.0</commons-lang3.version>
|
||
<commons-math3.version>3.6.1</commons-math3.version>
|
||
<commons-pool2.version>2.11.1</commons-pool2.version>
|
||
<commons.collections4.version>4.4</commons.collections4.version>
|
||
<ctest.skip.tests>false</ctest.skip.tests>
|
||
<dependencyCheck.skip>true</dependencyCheck.skip>
|
||
<disruptor.version>3.4.4</disruptor.version>
|
||
<drill.freemarker.maven.plugin.version>1.21.1</drill.freemarker.maven.plugin.version>
|
||
<dropwizard.metrics.version>4.2.19</dropwizard.metrics.version>
|
||
<eclipse-collections.version>11.1.0</eclipse-collections.version>
|
||
<!-- disable enforcer by default-->
|
||
<enforcer.skip>true</enforcer.skip>
|
||
<felix.version>5.1.9</felix.version>
|
||
<findbugs.jsr305.version>3.0.2</findbugs.jsr305.version>
|
||
<fusesource-mqtt-client.version>1.16</fusesource-mqtt-client.version>
|
||
<!-- JDK1.8 only support google java format 1.7-->
|
||
<google.java.format.version>1.22.0</google.java.format.version>
|
||
<gson.version>2.10.1</gson.version>
|
||
<guava.version>32.1.2-jre</guava.version>
|
||
<httpclient.version>4.5.14</httpclient.version>
|
||
<httpcore.version>4.4.16</httpcore.version>
|
||
<!--
|
||
This is the version of the thrift binary, that we release separately from here:
|
||
https://github.com/apache/iotdb-bin-resources/tree/main/iotdb-tools-thrift
|
||
-->
|
||
<iotdb-tools-thrift.version>0.14.1.0</iotdb-tools-thrift.version>
|
||
<jackson.version>2.15.4</jackson.version>
|
||
<!-- This is the last version to support the javax namespace -->
|
||
<jakarta.servlet-api.version>4.0.4</jakarta.servlet-api.version>
|
||
<!-- This is the last version to support the javax namespace -->
|
||
<jakarta.validation-api.version>2.0.2</jakarta.validation-api.version>
|
||
<!-- This is the last version to support the javax namespace -->
|
||
<jakarta.ws.rs-api.version>2.1.6</jakarta.ws.rs-api.version>
|
||
<java-websocket.version>1.5.4</java-websocket.version>
|
||
<jcip-annotations.version>1.0-1</jcip-annotations.version>
|
||
<!-- This is the last version to support the javax namespace -->
|
||
<jersey.version>2.40</jersey.version>
|
||
<!-- This was the last version to support Java 8 -->
|
||
<jetty.version>9.4.55.v20240627</jetty.version>
|
||
<jjwt.version>0.11.5</jjwt.version>
|
||
<jline.version>3.26.2</jline.version>
|
||
<jna.version>5.14.0</jna.version>
|
||
<json-smart.version>2.5.0</json-smart.version>
|
||
<jtransforms.version>3.1</jtransforms.version>
|
||
<junit.version>4.13.2</junit.version>
|
||
<!-- This was the last version to support Java 8 -->
|
||
<logback.version>1.3.14</logback.version>
|
||
<lz4-java.version>1.8.0</lz4-java.version>
|
||
<maven.assembly.version>3.6.0</maven.assembly.version>
|
||
<maven.compiler.source>1.8</maven.compiler.source>
|
||
<maven.compiler.target>1.8</maven.compiler.target>
|
||
<micrometer.version>1.11.4</micrometer.version>
|
||
<milo.version>0.6.14</milo.version>
|
||
<!-- It seems that powermock is having issues with the newest mockito versions -->
|
||
<mockito.version>2.23.4</mockito.version>
|
||
<!-- This was the last version to support Java 8 -->
|
||
<!--mockito.version>4.11.0</mockito.version-->
|
||
<moquette.version>0.17</moquette.version>
|
||
<netty.version>4.1.110.Final</netty.version>
|
||
<nimbus-jose-jwt.version>9.37.3</nimbus-jose-jwt.version>
|
||
<oauth2-oidc-sdk.version>10.15</oauth2-oidc-sdk.version>
|
||
<!-- This was the last version to support Java 8 -->
|
||
<openapi.generator.version>6.6.0</openapi.generator.version>
|
||
<osgi.version>7.0.0</osgi.version>
|
||
<pax-jdbc-common.version>1.5.6</pax-jdbc-common.version>
|
||
<powermock.version>2.0.9</powermock.version>
|
||
<ratis-thirdparty-misc.version>1.0.5</ratis-thirdparty-misc.version>
|
||
<!--
|
||
This is an unreleased version of a custom branch. The 8-character part after the version number
|
||
This is an unreleased version of a custom branch. The 8-character part after the version number
|
||
is for ensuring the SNAPSHOT will stay available. We should however have the Ratis folks do a
|
||
new release soon, as releasing with this version is more than sub-ideal.
|
||
-->
|
||
<ratis.version>3.1.1-0133c90-SNAPSHOT</ratis.version>
|
||
<reactive-streams.version>1.0.4</reactive-streams.version>
|
||
<reactor-netty.version>1.1.20</reactor-netty.version>
|
||
<reactor.version>3.5.18</reactor.version>
|
||
<reflections.version>0.10.2</reflections.version>
|
||
<slf4j.version>2.0.9</slf4j.version>
|
||
<snappy-java.version>1.1.10.5</snappy-java.version>
|
||
<sonar.coverage.jacoco.xmlReportPaths>target/jacoco-merged-reports/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths>
|
||
<!-- Exclude all generated code -->
|
||
<sonar.exclusions>**/generated-sources</sonar.exclusions>
|
||
<!-- URL of the ASF SonarQube server -->
|
||
<sonar.host.url>https://sonarcloud.io</sonar.host.url>
|
||
<sonar.java.checkstyle.reportPaths>target/checkstyle-report.xml</sonar.java.checkstyle.reportPaths>
|
||
<sonar.junit.reportPaths>target/surefire-reports,target/failsafe-reports</sonar.junit.reportPaths>
|
||
<sonar.organization>apache</sonar.organization>
|
||
<!-- Override this to `true`, if you want to disable spotless -->
|
||
<spotless.skip>false</spotless.skip>
|
||
<spotless.version>2.43.0</spotless.version>
|
||
<!-- This was the last version to support Java 8 -->
|
||
<swagger.version>1.6.14</swagger.version>
|
||
<thrift.exec-cmd.executable>chmod</thrift.exec-cmd.executable>
|
||
<thrift.exec.absolute.path/>
|
||
<!--
|
||
Thrift 0.17.0 was the last version that could be used in Java 8 applications,
|
||
However Thrift 0.17.0 has an invalid entry in the META-INF/MANIFEST.mf file.
|
||
All versions between 0.17.0 and 0.14.1 have know vulnerabilities, so for now
|
||
we'll stay at 0.14.1.
|
||
-->
|
||
<thrift.version>0.14.1</thrift.version>
|
||
<xz.version>1.9</xz.version>
|
||
<zstd-jni.version>1.5.6-3</zstd-jni.version>
|
||
<tsfile.version>1.2.0-240924-SNAPSHOT</tsfile.version>
|
||
</properties>
|
||
<!--
|
||
if we claim dependencies in dependencyManagement, then we do not claim
|
||
their version in subproject's pom, but we have to claim themselves again
|
||
in subprojects
|
||
-->
|
||
<dependencyManagement>
|
||
<dependencies>
|
||
<dependency>
|
||
<groupId>io.netty</groupId>
|
||
<artifactId>netty-bom</artifactId>
|
||
<version>${netty.version}</version>
|
||
<type>pom</type>
|
||
<scope>import</scope>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.slf4j</groupId>
|
||
<artifactId>slf4j-api</artifactId>
|
||
<version>${slf4j.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.apache.thrift</groupId>
|
||
<artifactId>libthrift</artifactId>
|
||
<version>${thrift.version}</version>
|
||
<exclusions>
|
||
<!-- Seemed suspicious to have this dependency in -->
|
||
<exclusion>
|
||
<groupId>org.apache.tomcat.embed</groupId>
|
||
<artifactId>tomcat-embed-core</artifactId>
|
||
</exclusion>
|
||
<!-- We don't want the old javax packages -->
|
||
<exclusion>
|
||
<groupId>javax.annotation</groupId>
|
||
<artifactId>javax.annotation-api</artifactId>
|
||
</exclusion>
|
||
</exclusions>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>commons-cli</groupId>
|
||
<artifactId>commons-cli</artifactId>
|
||
<version>${commons-cli.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.apache.commons</groupId>
|
||
<artifactId>commons-lang3</artifactId>
|
||
<version>${commons-lang3.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.jline</groupId>
|
||
<artifactId>jline</artifactId>
|
||
<version>${jline.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>net.java.dev.jna</groupId>
|
||
<artifactId>jna</artifactId>
|
||
<version>${jna.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.apache.commons</groupId>
|
||
<artifactId>commons-csv</artifactId>
|
||
<version>${commons-csv.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>junit</groupId>
|
||
<artifactId>junit</artifactId>
|
||
<version>${junit.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.mockito</groupId>
|
||
<artifactId>mockito-core</artifactId>
|
||
<version>${mockito.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.antlr</groupId>
|
||
<artifactId>antlr4-runtime</artifactId>
|
||
<version>${antlr4.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.osgi</groupId>
|
||
<artifactId>osgi.cmpn</artifactId>
|
||
<version>${osgi.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.osgi</groupId>
|
||
<artifactId>osgi.core</artifactId>
|
||
<version>${osgi.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.ops4j.pax.jdbc</groupId>
|
||
<artifactId>pax-jdbc-common</artifactId>
|
||
<version>${pax-jdbc-common.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.xerial.snappy</groupId>
|
||
<artifactId>snappy-java</artifactId>
|
||
<version>${snappy-java.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.powermock</groupId>
|
||
<artifactId>powermock-reflect</artifactId>
|
||
<version>${powermock.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>com.google.guava</groupId>
|
||
<artifactId>guava</artifactId>
|
||
<version>${guava.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.java-websocket</groupId>
|
||
<artifactId>Java-WebSocket</artifactId>
|
||
<version>${java-websocket.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>com.google.code.findbugs</groupId>
|
||
<artifactId>jsr305</artifactId>
|
||
<version>${findbugs.jsr305.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>com.google.code.gson</groupId>
|
||
<artifactId>gson</artifactId>
|
||
<version>${gson.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>jakarta.servlet</groupId>
|
||
<artifactId>jakarta.servlet-api</artifactId>
|
||
<version>${jakarta.servlet-api.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.bouncycastle</groupId>
|
||
<artifactId>bcprov-jdk18on</artifactId>
|
||
<version>1.78</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>commons-io</groupId>
|
||
<artifactId>commons-io</artifactId>
|
||
<version>${commons-io.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.apache.ratis</groupId>
|
||
<artifactId>ratis-server</artifactId>
|
||
<version>${ratis.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.apache.ratis</groupId>
|
||
<artifactId>ratis-server-api</artifactId>
|
||
<version>${ratis.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.apache.ratis</groupId>
|
||
<artifactId>ratis-common</artifactId>
|
||
<version>${ratis.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.apache.ratis</groupId>
|
||
<artifactId>ratis-client</artifactId>
|
||
<version>${ratis.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.apache.ratis</groupId>
|
||
<artifactId>ratis-grpc</artifactId>
|
||
<version>${ratis.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.apache.ratis</groupId>
|
||
<artifactId>ratis-proto</artifactId>
|
||
<version>${ratis.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.apache.ratis</groupId>
|
||
<artifactId>ratis-metrics-api</artifactId>
|
||
<version>${ratis.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.apache.ratis</groupId>
|
||
<artifactId>ratis-thirdparty-misc</artifactId>
|
||
<version>${ratis-thirdparty-misc.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.apache.commons</groupId>
|
||
<artifactId>commons-collections4</artifactId>
|
||
<version>${commons.collections4.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>io.airlift</groupId>
|
||
<artifactId>units</artifactId>
|
||
<version>${airlift-units.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>io.jsonwebtoken</groupId>
|
||
<artifactId>jjwt-api</artifactId>
|
||
<version>${jjwt.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.eclipse.milo</groupId>
|
||
<artifactId>stack-core</artifactId>
|
||
<version>${milo.version}</version>
|
||
<exclusions>
|
||
<exclusion>
|
||
<groupId>com.sun.activation</groupId>
|
||
<artifactId>jakarta.activation</artifactId>
|
||
</exclusion>
|
||
</exclusions>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.eclipse.milo</groupId>
|
||
<artifactId>sdk-core</artifactId>
|
||
<version>${milo.version}</version>
|
||
<exclusions>
|
||
<exclusion>
|
||
<groupId>com.sun.activation</groupId>
|
||
<artifactId>jakarta.activation</artifactId>
|
||
</exclusion>
|
||
</exclusions>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.eclipse.milo</groupId>
|
||
<artifactId>stack-server</artifactId>
|
||
<version>${milo.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.checkerframework</groupId>
|
||
<artifactId>checker-qual</artifactId>
|
||
<version>${checker-qual.version}</version>
|
||
</dependency>
|
||
<!-- TODO: Deprecated: Use Airline 2 or Picocli instead -->
|
||
<dependency>
|
||
<groupId>io.airlift</groupId>
|
||
<artifactId>airline</artifactId>
|
||
<version>${airline.version}</version>
|
||
<exclusions>
|
||
<exclusion>
|
||
<groupId>javax.inject</groupId>
|
||
<artifactId>javax.inject</artifactId>
|
||
</exclusion>
|
||
</exclusions>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>io.airlift</groupId>
|
||
<artifactId>concurrent</artifactId>
|
||
<version>${airlift.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.eclipse.milo</groupId>
|
||
<artifactId>sdk-server</artifactId>
|
||
<version>${milo.version}</version>
|
||
<exclusions>
|
||
<exclusion>
|
||
<groupId>com.sun.activation</groupId>
|
||
<artifactId>jakarta.activation</artifactId>
|
||
</exclusion>
|
||
</exclusions>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.reflections</groupId>
|
||
<artifactId>reflections</artifactId>
|
||
<version>${reflections.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>io.moquette</groupId>
|
||
<artifactId>moquette-broker</artifactId>
|
||
<version>${moquette.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>com.lmax</groupId>
|
||
<artifactId>disruptor</artifactId>
|
||
<version>${disruptor.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>io.jsonwebtoken</groupId>
|
||
<artifactId>jjwt-impl</artifactId>
|
||
<version>${jjwt.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>io.jsonwebtoken</groupId>
|
||
<artifactId>jjwt-jackson</artifactId>
|
||
<version>${jjwt.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>com.nimbusds</groupId>
|
||
<artifactId>oauth2-oidc-sdk</artifactId>
|
||
<version>${oauth2-oidc-sdk.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.apache.httpcomponents</groupId>
|
||
<artifactId>httpclient</artifactId>
|
||
<version>${httpclient.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.powermock</groupId>
|
||
<artifactId>powermock-core</artifactId>
|
||
<version>${powermock.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.powermock</groupId>
|
||
<artifactId>powermock-module-junit4</artifactId>
|
||
<version>${powermock.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.powermock</groupId>
|
||
<artifactId>powermock-api-mockito2</artifactId>
|
||
<version>${powermock.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>com.nimbusds</groupId>
|
||
<artifactId>nimbus-jose-jwt</artifactId>
|
||
<version>${nimbus-jose-jwt.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>cglib</groupId>
|
||
<artifactId>cglib</artifactId>
|
||
<version>${cglib.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.apache.commons</groupId>
|
||
<artifactId>commons-jexl3</artifactId>
|
||
<version>${commons-jexl3.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>com.github.luben</groupId>
|
||
<artifactId>zstd-jni</artifactId>
|
||
<version>${zstd-jni.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.lz4</groupId>
|
||
<artifactId>lz4-java</artifactId>
|
||
<version>${lz4-java.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.tukaani</groupId>
|
||
<artifactId>xz</artifactId>
|
||
<version>${xz.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>io.swagger</groupId>
|
||
<artifactId>swagger-annotations</artifactId>
|
||
<version>${swagger.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>io.swagger</groupId>
|
||
<artifactId>swagger-models</artifactId>
|
||
<version>${swagger.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>io.swagger</groupId>
|
||
<artifactId>swagger-jaxrs</artifactId>
|
||
<version>${swagger.version}</version>
|
||
<exclusions>
|
||
<exclusion>
|
||
<groupId>javax.validation</groupId>
|
||
<artifactId>validation-api</artifactId>
|
||
</exclusion>
|
||
<exclusion>
|
||
<groupId>javax.ws.rs</groupId>
|
||
<artifactId>jsr311-api</artifactId>
|
||
</exclusion>
|
||
</exclusions>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.fusesource.mqtt-client</groupId>
|
||
<artifactId>mqtt-client</artifactId>
|
||
<version>${fusesource-mqtt-client.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.eclipse.collections</groupId>
|
||
<artifactId>eclipse-collections</artifactId>
|
||
<version>${eclipse-collections.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.eclipse.collections</groupId>
|
||
<artifactId>eclipse-collections-api</artifactId>
|
||
<version>${eclipse-collections.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.apache.commons</groupId>
|
||
<artifactId>commons-math3</artifactId>
|
||
<version>${commons-math3.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>com.github.wendykierp</groupId>
|
||
<artifactId>JTransforms</artifactId>
|
||
<version>${jtransforms.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>com.github.stephenc.jcip</groupId>
|
||
<artifactId>jcip-annotations</artifactId>
|
||
<version>${jcip-annotations.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>jakarta.validation</groupId>
|
||
<artifactId>jakarta.validation-api</artifactId>
|
||
<version>${jakarta.validation-api.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>commons-codec</groupId>
|
||
<artifactId>commons-codec</artifactId>
|
||
<version>${commons-codec.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.apache.commons</groupId>
|
||
<artifactId>commons-pool2</artifactId>
|
||
<version>${commons-pool2.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>io.dropwizard.metrics</groupId>
|
||
<artifactId>metrics-core</artifactId>
|
||
<version>${dropwizard.metrics.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.eclipse.jetty</groupId>
|
||
<artifactId>jetty-http</artifactId>
|
||
<version>${jetty.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.eclipse.jetty</groupId>
|
||
<artifactId>jetty-util</artifactId>
|
||
<version>${jetty.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.eclipse.jetty</groupId>
|
||
<artifactId>jetty-server</artifactId>
|
||
<version>${jetty.version}</version>
|
||
<exclusions>
|
||
<exclusion>
|
||
<groupId>javax.servlet</groupId>
|
||
<artifactId>javax.servlet-api</artifactId>
|
||
</exclusion>
|
||
</exclusions>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>jakarta.ws.rs</groupId>
|
||
<artifactId>jakarta.ws.rs-api</artifactId>
|
||
<version>${jakarta.ws.rs-api.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.glassfish.jersey.containers</groupId>
|
||
<artifactId>jersey-container-servlet-core</artifactId>
|
||
<version>${jersey.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.eclipse.jetty</groupId>
|
||
<artifactId>jetty-servlet</artifactId>
|
||
<version>${jetty.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>com.github.ben-manes.caffeine</groupId>
|
||
<artifactId>caffeine</artifactId>
|
||
<version>${caffeine.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>net.minidev</groupId>
|
||
<artifactId>json-smart</artifactId>
|
||
<version>${json-smart.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.apache.httpcomponents</groupId>
|
||
<artifactId>httpcore</artifactId>
|
||
<version>${httpcore.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>com.fasterxml.jackson.core</groupId>
|
||
<artifactId>jackson-databind</artifactId>
|
||
<version>${jackson.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.awaitility</groupId>
|
||
<artifactId>awaitility</artifactId>
|
||
<version>${awaitility.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>io.projectreactor.netty</groupId>
|
||
<artifactId>reactor-netty-http</artifactId>
|
||
<version>${reactor-netty.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>io.projectreactor.netty</groupId>
|
||
<artifactId>reactor-netty-core</artifactId>
|
||
<version>${reactor-netty.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>io.projectreactor</groupId>
|
||
<artifactId>reactor-core</artifactId>
|
||
<version>${reactor.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.reactivestreams</groupId>
|
||
<artifactId>reactive-streams</artifactId>
|
||
<version>${reactive-streams.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>ch.qos.logback</groupId>
|
||
<artifactId>logback-classic</artifactId>
|
||
<version>${logback.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>ch.qos.logback</groupId>
|
||
<artifactId>logback-core</artifactId>
|
||
<version>${logback.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>io.micrometer</groupId>
|
||
<artifactId>micrometer-core</artifactId>
|
||
<version>${micrometer.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>com.fasterxml.jackson.core</groupId>
|
||
<artifactId>jackson-annotations</artifactId>
|
||
<version>${jackson.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>com.fasterxml.jackson.jaxrs</groupId>
|
||
<artifactId>jackson-jaxrs-json-provider</artifactId>
|
||
<version>${jackson.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>com.fasterxml.jackson.datatype</groupId>
|
||
<artifactId>jackson-datatype-jsr310</artifactId>
|
||
<version>${jackson.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.glassfish.jersey.media</groupId>
|
||
<artifactId>jersey-media-multipart</artifactId>
|
||
<version>${jersey.version}</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.glassfish.jersey.inject</groupId>
|
||
<artifactId>jersey-hk2</artifactId>
|
||
<version>${jersey.version}</version>
|
||
</dependency>
|
||
<!-- Conflict:
|
||
json-smart (pulls in 9.3),
|
||
cglib (pulls in 7.1)
|
||
-->
|
||
<dependency>
|
||
<groupId>org.ow2.asm</groupId>
|
||
<artifactId>asm</artifactId>
|
||
<version>9.3</version>
|
||
</dependency>
|
||
<!-- Conflict:
|
||
guava (pulls in 2.18.0),
|
||
caffeine (pulls in 2.10.0)
|
||
-->
|
||
<dependency>
|
||
<groupId>com.google.errorprone</groupId>
|
||
<artifactId>error_prone_annotations</artifactId>
|
||
<version>2.18.0</version>
|
||
</dependency>
|
||
<!-- Conflict:
|
||
jackson-json-provider (pulls in 2.15.2),
|
||
jackson-databind (pulls in 2.15.2),
|
||
jackson-databind-jsd310 (pulls in 2.15.2),
|
||
swagger-jaxrs (pulls in 2.14.2)
|
||
-->
|
||
<dependency>
|
||
<groupId>com.fasterxml.jackson.core</groupId>
|
||
<artifactId>jackson-core</artifactId>
|
||
<version>${jackson.version}</version>
|
||
</dependency>
|
||
</dependencies>
|
||
</dependencyManagement>
|
||
<build>
|
||
<pluginManagement>
|
||
<plugins>
|
||
<plugin>
|
||
<groupId>org.apache.maven.plugins</groupId>
|
||
<artifactId>maven-javadoc-plugin</artifactId>
|
||
<version>3.5.0</version>
|
||
<configuration>
|
||
<excludePackageNames>*thrift*</excludePackageNames>
|
||
<!--
|
||
This will suppress the generation of a hidden timestamp at the top of each generated html page
|
||
and hopefully let the site generation nod to too big updates every time.
|
||
-->
|
||
<notimestamp>true</notimestamp>
|
||
<!--Don't fail the build, just because there were issues in the JavaDoc generation.-->
|
||
<failOnError>false</failOnError>
|
||
</configuration>
|
||
</plugin>
|
||
<!--
|
||
We need to increase the memory available to tests as we were
|
||
getting out-of-memory errors when building on windows machines.
|
||
-->
|
||
<plugin>
|
||
<groupId>org.apache.maven.plugins</groupId>
|
||
<artifactId>maven-surefire-plugin</artifactId>
|
||
<version>3.1.2</version>
|
||
<configuration>
|
||
<argLine>${argLine} -Xmx1024m</argLine>
|
||
<!-- Force the working directory to be different for each fork, so forks don't trample each other -->
|
||
<workingDirectory>${project.build.directory}/fork_${surefire.forkNumber}</workingDirectory>
|
||
</configuration>
|
||
</plugin>
|
||
<!--
|
||
Plugin for doing the code analysis.
|
||
-->
|
||
<plugin>
|
||
<groupId>org.sonarsource.scanner.maven</groupId>
|
||
<artifactId>sonar-maven-plugin</artifactId>
|
||
<version>3.9.1.2184</version>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>org.apache.rat</groupId>
|
||
<artifactId>apache-rat-plugin</artifactId>
|
||
<version>0.16.1</version>
|
||
<configuration>
|
||
<consoleOutput>true</consoleOutput>
|
||
<excludes>
|
||
<!-- Git related files -->
|
||
<exclude>**/.git/**</exclude>
|
||
<exclude>**/.mvn/**</exclude>
|
||
<exclude>**/.gitignore</exclude>
|
||
<exclude>**/.gitmodules</exclude>
|
||
<exclude>**/.git-blame-ignore-revs</exclude>
|
||
<exclude>**/git.properties</exclude>
|
||
<!-- Maven related files -->
|
||
<exclude>**/target/**</exclude>
|
||
<!-- Eclipse related files -->
|
||
<exclude>**/.project</exclude>
|
||
<exclude>**/.settings/**</exclude>
|
||
<exclude>**/.classpath</exclude>
|
||
<!-- IntelliJ related files -->
|
||
<exclude>**/.idea/**</exclude>
|
||
<exclude>**/*.iml</exclude>
|
||
<!-- Runtime log -->
|
||
<exclude>**/*.log</exclude>
|
||
<!-- Exclude CVS files -->
|
||
<exclude>**/*.cvs</exclude>
|
||
<!-- licenses -->
|
||
<exclude>licenses/*</exclude>
|
||
<!-- only for Travis CI with WinOS-->
|
||
<exclude>hadoopbin</exclude>
|
||
<exclude>windowssystem32</exclude>
|
||
<exclude>.ignore</exclude>
|
||
<!-- generated by Github -->
|
||
<exclude>**/.github/**</exclude>
|
||
<!-- figures -->
|
||
<exclude>**/.eps</exclude>
|
||
<exclude>**/.png</exclude>
|
||
<exclude>**/.jpg</exclude>
|
||
<exclude>**/.jpeg</exclude>
|
||
<!--Generated by Apache Release -->
|
||
<exclude>local-snapshots-dir/**</exclude>
|
||
<!-- visualization plans -->
|
||
<exclude>**/*.plan</exclude>
|
||
<exclude>**/NOTICE-binary</exclude>
|
||
<exclude>**/LICENSE-binary</exclude>
|
||
<!-- json does not support comments-->
|
||
<exclude>**/*.json</exclude>
|
||
<!-- the zeppelin export file format-->
|
||
<exclude>**/*.zpln</exclude>
|
||
<!-- exclude go.mod, go.sum and rpc/* in iotdb-client-go submodule-->
|
||
<exclude>**/go.mod</exclude>
|
||
<exclude>**/go.sum</exclude>
|
||
<exclude>client-go/rpc/*</exclude>
|
||
<!-- python -->
|
||
<exclude>.pytest_cache/**</exclude>
|
||
<exclude>**/venv/**</exclude>
|
||
<exclude>apache_iotdb.egg-info/**</exclude>
|
||
<exclude>**/thrift/**/__init__.py</exclude>
|
||
<!-- Java SPI uses files in resources/META-INF/services-->
|
||
<exclude>**/resources/META-INF/services/**</exclude>
|
||
<!-- site-->
|
||
<exclude>**/redirects</exclude>
|
||
<exclude>**/.eslintignore</exclude>
|
||
<exclude>**/palette.styl</exclude>
|
||
<exclude>**/RightMenu.vue</exclude>
|
||
<exclude>**/pnpm-lock.yaml</exclude>
|
||
<!-- This is generated by the IntelliJ Antlr Plugin -->
|
||
<exclude>**/db/qp/sql/gen/**</exclude>
|
||
<exclude>**/ainode-example/**</exclude>
|
||
</excludes>
|
||
</configuration>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>com.diffplug.spotless</groupId>
|
||
<artifactId>spotless-maven-plugin</artifactId>
|
||
<version>${spotless.version}</version>
|
||
<configuration>
|
||
<java>
|
||
<googleJavaFormat>
|
||
<version>${google.java.format.version}</version>
|
||
<style>GOOGLE</style>
|
||
</googleJavaFormat>
|
||
<importOrder>
|
||
<order>org.apache.iotdb,,javax,java,\#</order>
|
||
</importOrder>
|
||
<removeUnusedImports/>
|
||
</java>
|
||
<lineEndings>UNIX</lineEndings>
|
||
</configuration>
|
||
<executions>
|
||
<execution>
|
||
<id>spotless-check</id>
|
||
<goals>
|
||
<goal>check</goal>
|
||
</goals>
|
||
<phase>validate</phase>
|
||
</execution>
|
||
</executions>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>com.googlecode.maven-download-plugin</groupId>
|
||
<artifactId>download-maven-plugin</artifactId>
|
||
<version>1.7.1</version>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>com.googlecode.cmake-maven-project</groupId>
|
||
<artifactId>cmake-maven-plugin</artifactId>
|
||
<version>3.29.3-b2</version>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>org.apache.maven.plugins</groupId>
|
||
<artifactId>maven-jar-plugin</artifactId>
|
||
<version>3.2.2</version>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>org.eluder.coveralls</groupId>
|
||
<artifactId>coveralls-maven-plugin</artifactId>
|
||
<version>4.3.0</version>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>org.apache.maven.plugins</groupId>
|
||
<artifactId>maven-enforcer-plugin</artifactId>
|
||
<version>3.4.1</version>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>net.revelc.code.formatter</groupId>
|
||
<artifactId>formatter-maven-plugin</artifactId>
|
||
<version>2.23.0</version>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>org.apache.maven.plugins</groupId>
|
||
<artifactId>maven-checkstyle-plugin</artifactId>
|
||
<version>3.3.0</version>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>org.apache.maven.plugins</groupId>
|
||
<artifactId>maven-source-plugin</artifactId>
|
||
<version>3.2.1</version>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>org.codehaus.mojo</groupId>
|
||
<artifactId>exec-maven-plugin</artifactId>
|
||
<version>3.1.1</version>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>org.apache.maven.plugins</groupId>
|
||
<artifactId>maven-assembly-plugin</artifactId>
|
||
<version>${maven.assembly.version}</version>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>org.cyclonedx</groupId>
|
||
<artifactId>cyclonedx-maven-plugin</artifactId>
|
||
<version>2.7.11</version>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>net.nicoulaj.maven.plugins</groupId>
|
||
<artifactId>checksum-maven-plugin</artifactId>
|
||
<version>1.11</version>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>org.jacoco</groupId>
|
||
<artifactId>jacoco-maven-plugin</artifactId>
|
||
<version>0.8.12</version>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>com.coderplus.maven.plugins</groupId>
|
||
<artifactId>copy-rename-maven-plugin</artifactId>
|
||
<version>1.0.1</version>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>org.apache.maven.plugins</groupId>
|
||
<artifactId>maven-shade-plugin</artifactId>
|
||
<version>3.5.0</version>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>org.apache.maven.plugins</groupId>
|
||
<artifactId>maven-resources-plugin</artifactId>
|
||
<version>3.3.1</version>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>org.apache.maven.plugins</groupId>
|
||
<artifactId>maven-dependency-plugin</artifactId>
|
||
<version>3.6.0</version>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>org.apache.thrift</groupId>
|
||
<artifactId>thrift-maven-plugin</artifactId>
|
||
<version>0.10.0</version>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>com.bazaarvoice.maven.plugins</groupId>
|
||
<artifactId>process-exec-maven-plugin</artifactId>
|
||
<version>0.9</version>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>org.codehaus.mojo</groupId>
|
||
<artifactId>build-helper-maven-plugin</artifactId>
|
||
<version>3.4.0</version>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>org.apache.felix</groupId>
|
||
<artifactId>maven-bundle-plugin</artifactId>
|
||
<version>${felix.version}</version>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>org.eclipse.m2e</groupId>
|
||
<artifactId>lifecycle-mapping</artifactId>
|
||
<version>1.0.0</version>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>org.antlr</groupId>
|
||
<artifactId>antlr4-maven-plugin</artifactId>
|
||
<version>${antlr4.version}</version>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>org.apache.drill.tools</groupId>
|
||
<artifactId>drill-fmpp-maven-plugin</artifactId>
|
||
<version>${drill.freemarker.maven.plugin.version}</version>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>org.apache.maven.plugins</groupId>
|
||
<artifactId>maven-clean-plugin</artifactId>
|
||
<version>3.3.2</version>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>pl.project13.maven</groupId>
|
||
<artifactId>git-commit-id-plugin</artifactId>
|
||
<version>4.9.10</version>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>org.openapitools</groupId>
|
||
<artifactId>openapi-generator-maven-plugin</artifactId>
|
||
<version>${openapi.generator.version}</version>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>au.com.acegi</groupId>
|
||
<artifactId>xml-format-maven-plugin</artifactId>
|
||
<version>3.2.2</version>
|
||
</plugin>
|
||
</plugins>
|
||
</pluginManagement>
|
||
<plugins>
|
||
<plugin>
|
||
<groupId>com.diffplug.spotless</groupId>
|
||
<artifactId>spotless-maven-plugin</artifactId>
|
||
<configuration>
|
||
<skip>${spotless.skip}</skip>
|
||
</configuration>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>org.eluder.coveralls</groupId>
|
||
<artifactId>coveralls-maven-plugin</artifactId>
|
||
<configuration>
|
||
<jacocoReports>
|
||
<jacocoReport>code-coverage/target/jacoco-merged-reports/jacoco.xml</jacocoReport>
|
||
</jacocoReports>
|
||
<sourceEncoding>UTF-8</sourceEncoding>
|
||
<sourceDirectories>
|
||
<!-- put all source folders not in src/main/java here-->
|
||
<sourceDirectory>iotdb-core/antlr/target/generated-sources/antlr4</sourceDirectory>
|
||
<sourceDirectory>iotdb-protocol/thrift-datanode/target/generated-sources/thrift</sourceDirectory>
|
||
<sourceDirectory>iotdb-protocol/thrift-commons/target/generated-sources/thrift</sourceDirectory>
|
||
<sourceDirectory>iotdb-protocol/thrift-confignode/target/generated-sources/thrift</sourceDirectory>
|
||
<sourceDirectory>iotdb-protocol/thrift-consensus/target/generated-sources/thrift</sourceDirectory>
|
||
<sourceDirectory>iotdb-protocol/openapi/target/generated-sources/java/src/gen/java</sourceDirectory>
|
||
<sourceDirectory>iotdb-protocol/openapi/target/generated-sources/java/src/main/java</sourceDirectory>
|
||
<sourceDirectory>iotdb-core/datanode/target/generated-sources/freemarker/</sourceDirectory>
|
||
</sourceDirectories>
|
||
</configuration>
|
||
<!-- JDK11 removes the following libs. We have to add them-->
|
||
<dependencies>
|
||
<dependency>
|
||
<groupId>javax.xml.bind</groupId>
|
||
<artifactId>jaxb-api</artifactId>
|
||
<version>2.4.0-b180830.0359</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>com.sun.xml.bind</groupId>
|
||
<artifactId>jaxb-core</artifactId>
|
||
<version>2.3.0.1</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>com.sun.xml.bind</groupId>
|
||
<artifactId>jaxb-impl</artifactId>
|
||
<version>2.3.6</version>
|
||
</dependency>
|
||
</dependencies>
|
||
</plugin>
|
||
<!--
|
||
Strange things usually happen if you run with a too low Java version.
|
||
This plugin not only checks the minimum java version of 1.8, but also
|
||
checks all dependencies (and transitive dependencies) for reported CVEs.
|
||
-->
|
||
<plugin>
|
||
<groupId>org.apache.maven.plugins</groupId>
|
||
<artifactId>maven-enforcer-plugin</artifactId>
|
||
<dependencies>
|
||
<dependency>
|
||
<groupId>org.sonatype.ossindex.maven</groupId>
|
||
<artifactId>ossindex-maven-enforcer-rules</artifactId>
|
||
<version>3.2.0</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.codehaus.mojo</groupId>
|
||
<artifactId>extra-enforcer-rules</artifactId>
|
||
<version>1.7.0</version>
|
||
</dependency>
|
||
<dependency>
|
||
<groupId>org.apache.maven.shared</groupId>
|
||
<artifactId>maven-dependency-tree</artifactId>
|
||
<version>3.2.1</version>
|
||
</dependency>
|
||
</dependencies>
|
||
<executions>
|
||
<!-- Ensure we're not mixing dependency versions -->
|
||
<execution>
|
||
<id>enforce-version-convergence</id>
|
||
<goals>
|
||
<goal>enforce</goal>
|
||
</goals>
|
||
<phase>validate</phase>
|
||
<configuration>
|
||
<rules>
|
||
<dependencyConvergence/>
|
||
</rules>
|
||
</configuration>
|
||
</execution>
|
||
<!--
|
||
Fails the build if classes are included from multiple
|
||
artifacts and these are not identical.
|
||
-->
|
||
<execution>
|
||
<id>enforce-ban-duplicate-classes</id>
|
||
<goals>
|
||
<goal>enforce</goal>
|
||
</goals>
|
||
<configuration>
|
||
<rules>
|
||
<banDuplicateClasses>
|
||
<scopes>
|
||
<scope>compile</scope>
|
||
<scope>provided</scope>
|
||
</scopes>
|
||
<findAllDuplicates>true</findAllDuplicates>
|
||
<ignoreWhenIdentical>true</ignoreWhenIdentical>
|
||
</banDuplicateClasses>
|
||
</rules>
|
||
<fail>true</fail>
|
||
</configuration>
|
||
</execution>
|
||
<!-- Make sure no dependencies are used for which known vulnerabilities exist. -->
|
||
<execution>
|
||
<id>vulnerability-checks</id>
|
||
<goals>
|
||
<goal>enforce</goal>
|
||
</goals>
|
||
<phase>validate</phase>
|
||
<configuration>
|
||
<!-- Just generate warnings for now -->
|
||
<fail>true</fail>
|
||
<rules>
|
||
<requireJavaVersion>
|
||
<version>1.8.0</version>
|
||
</requireJavaVersion>
|
||
<banVulnerable implementation="org.sonatype.ossindex.maven.enforcer.BanVulnerableDependencies">
|
||
<excludeCoordinates>
|
||
<!-- TODO: For this CVE no fix exists yet (Keep an eye on it) -->
|
||
<exclude>
|
||
<groupId>io.netty</groupId>
|
||
<artifactId>netty-handler</artifactId>
|
||
<version>4.1.97.Final</version>
|
||
</exclude>
|
||
<!--
|
||
CVE-2016-1000027 seems to effect the HTTP Invoker, which we are not using.
|
||
These are marked deprecated anyway and are removed in Spring 6.x. Unfortunately,
|
||
we are still stuck at 5.x due to the javax-namespace issues.
|
||
-->
|
||
<exclude>
|
||
<groupId>org.springframework</groupId>
|
||
<artifactId>spring-web</artifactId>
|
||
<version>5.3.30</version>
|
||
</exclude>
|
||
<!--
|
||
For this CVE no fix exists and will probably never exist
|
||
(We should discuss dropping 2.11 anyway)
|
||
-->
|
||
<exclude>
|
||
<groupId>org.apache.spark</groupId>
|
||
<artifactId>spark-core_2.11</artifactId>
|
||
<version>2.4.8</version>
|
||
</exclude>
|
||
<!--
|
||
We can't update to a fixed version as we're stuck with this version
|
||
as it was the last to support the javax namespace.
|
||
-->
|
||
<exclude>
|
||
<groupId>org.glassfish.jersey.core</groupId>
|
||
<artifactId>jersey-common</artifactId>
|
||
<version>2.4.8</version>
|
||
</exclude>
|
||
<!--
|
||
TODO: For this CVE no fix exists yet, however we should keep an eye on this:
|
||
https://docs.google.com/presentation/d/1W5KU7ffh4dheR8iD54ulABImi6byAhSI-OhEKw2adRo/edit#slide=id.gaf11915f86_0_0
|
||
-->
|
||
<exclude>
|
||
<groupId>io.atomix</groupId>
|
||
<artifactId>atomix-raft</artifactId>
|
||
<version>3.1.12</version>
|
||
</exclude>
|
||
</excludeCoordinates>
|
||
</banVulnerable>
|
||
</rules>
|
||
</configuration>
|
||
</execution>
|
||
</executions>
|
||
</plugin>
|
||
<!--
|
||
Even if Maven transitively pulls in dependencies, relying on these can
|
||
quite often cause hard to find problems. So it's a good practice to make
|
||
sure everything directly required is also directly added as a dependency.
|
||
On the other side adding unused dependency only over-complicates the
|
||
dependency graph, so the maven-dependency-plugin checks we depend on
|
||
what we need and only that and that runtime dependencies are correctly
|
||
imported with runtime scope.
|
||
-->
|
||
<plugin>
|
||
<groupId>org.apache.maven.plugins</groupId>
|
||
<artifactId>maven-dependency-plugin</artifactId>
|
||
<executions>
|
||
<execution>
|
||
<id>check-dependencies</id>
|
||
<goals>
|
||
<goal>analyze-only</goal>
|
||
</goals>
|
||
<phase>verify</phase>
|
||
<configuration>
|
||
<failOnWarning>true</failOnWarning>
|
||
</configuration>
|
||
</execution>
|
||
</executions>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>net.revelc.code.formatter</groupId>
|
||
<artifactId>formatter-maven-plugin</artifactId>
|
||
</plugin>
|
||
<!--for code style check -->
|
||
<plugin>
|
||
<groupId>org.apache.maven.plugins</groupId>
|
||
<artifactId>maven-checkstyle-plugin</artifactId>
|
||
<configuration>
|
||
<configLocation>checkstyle.xml</configLocation>
|
||
<includeTestSourceDirectory>true</includeTestSourceDirectory>
|
||
</configuration>
|
||
<dependencies>
|
||
<dependency>
|
||
<groupId>com.puppycrawl.tools</groupId>
|
||
<artifactId>checkstyle</artifactId>
|
||
<version>9.3</version>
|
||
<!-- Starting with version 10, checkstyle requires Java 11 -->
|
||
<!--version>10.12.3</version-->
|
||
</dependency>
|
||
</dependencies>
|
||
<executions>
|
||
<execution>
|
||
<id>validate</id>
|
||
<goals>
|
||
<goal>check</goal>
|
||
</goals>
|
||
<phase>validate</phase>
|
||
<configuration>
|
||
<outputFile>target/checkstyle-report.xml</outputFile>
|
||
<configLocation>checkstyle.xml</configLocation>
|
||
<propertyExpansion>baseDir=${project.basedir}</propertyExpansion>
|
||
</configuration>
|
||
</execution>
|
||
</executions>
|
||
</plugin>
|
||
<!--
|
||
Check if all files contain Apache headers in them.
|
||
Ignore this plugin, we use license-maven-plugin to check apache header.
|
||
-->
|
||
<plugin>
|
||
<groupId>org.apache.rat</groupId>
|
||
<artifactId>apache-rat-plugin</artifactId>
|
||
<executions>
|
||
<execution>
|
||
<id>license-check</id>
|
||
<goals>
|
||
<goal>check</goal>
|
||
</goals>
|
||
<phase>verify</phase>
|
||
</execution>
|
||
</executions>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>au.com.acegi</groupId>
|
||
<artifactId>xml-format-maven-plugin</artifactId>
|
||
<executions>
|
||
<execution>
|
||
<id>xml-format</id>
|
||
<goals>
|
||
<goal>xml-format</goal>
|
||
</goals>
|
||
<phase>compile</phase>
|
||
<configuration>
|
||
<!-- configure your formatting preferences here (see link below) -->
|
||
<indentSize>4</indentSize>
|
||
<excludes>
|
||
<exclude>**/target/**</exclude>
|
||
</excludes>
|
||
</configuration>
|
||
</execution>
|
||
</executions>
|
||
</plugin>
|
||
<!--
|
||
Generate the legally required text files in the jars
|
||
-->
|
||
<plugin>
|
||
<groupId>org.apache.maven.plugins</groupId>
|
||
<artifactId>maven-remote-resources-plugin</artifactId>
|
||
<executions>
|
||
<execution>
|
||
<id>process-resource-bundles</id>
|
||
<goals>
|
||
<goal>process</goal>
|
||
</goals>
|
||
<configuration>
|
||
<resourceBundles>
|
||
<!-- Will generate META-INF/{DEPENDENCIES,LICENSE,NOTICE} -->
|
||
<resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle>
|
||
</resourceBundles>
|
||
<!-- Content in this directory will be appended to generated resources -->
|
||
<appendedResourcesDirectory>${basedir}/src/remote-resources</appendedResourcesDirectory>
|
||
</configuration>
|
||
</execution>
|
||
</executions>
|
||
</plugin>
|
||
<!-- Separates the unit tests from the integration tests. -->
|
||
<!-- TODO: Integration-Tests should be executed by the failsafe plugin -->
|
||
<plugin>
|
||
<groupId>org.apache.maven.plugins</groupId>
|
||
<artifactId>maven-surefire-plugin</artifactId>
|
||
<executions>
|
||
<execution>
|
||
<id>unit-tests</id>
|
||
<goals>
|
||
<goal>test</goal>
|
||
</goals>
|
||
<phase>test</phase>
|
||
<configuration>
|
||
<includes>
|
||
<!-- Include unit tests within integration-test phase. -->
|
||
<include>src/test/**/*Test.java</include>
|
||
</includes>
|
||
<excludes>
|
||
<!-- Exclude integration tests within (unit) test phase. -->
|
||
<exclude>src/test/**/*IT.java</exclude>
|
||
</excludes>
|
||
</configuration>
|
||
</execution>
|
||
<execution>
|
||
<id>integration-tests</id>
|
||
<goals>
|
||
<goal>test</goal>
|
||
</goals>
|
||
<phase>integration-test</phase>
|
||
<configuration>
|
||
<includes>
|
||
<!-- Include integration tests within integration-test phase. -->
|
||
<include>src/test/**/*IT.java</include>
|
||
</includes>
|
||
<excludes>
|
||
<!-- Exclude unit tests within (unit) test phase. -->
|
||
<exclude>src/test/**/*Test.java</exclude>
|
||
</excludes>
|
||
</configuration>
|
||
</execution>
|
||
</executions>
|
||
</plugin>
|
||
<!-- Also package the sources as jar -->
|
||
<plugin>
|
||
<groupId>org.apache.maven.plugins</groupId>
|
||
<artifactId>maven-source-plugin</artifactId>
|
||
<executions>
|
||
<execution>
|
||
<id>create-source-package</id>
|
||
<goals>
|
||
<goal>jar-no-fork</goal>
|
||
</goals>
|
||
<phase>package</phase>
|
||
</execution>
|
||
</executions>
|
||
</plugin>
|
||
<!-- Check if we've changed any dependencies being included -->
|
||
<plugin>
|
||
<groupId>org.cyclonedx</groupId>
|
||
<artifactId>cyclonedx-maven-plugin</artifactId>
|
||
<!-- Only run this in the root module of the project -->
|
||
<inherited>false</inherited>
|
||
<configuration>
|
||
<outputName>apache-${project.artifactId}-${project.version}-sbom</outputName>
|
||
</configuration>
|
||
<executions>
|
||
<execution>
|
||
<phase>package</phase>
|
||
<goals>
|
||
<goal>makeAggregateBom</goal>
|
||
</goals>
|
||
</execution>
|
||
</executions>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>org.codehaus.mojo</groupId>
|
||
<artifactId>xml-maven-plugin</artifactId>
|
||
<version>1.1.0</version>
|
||
<!-- Only run this in the root module of the project -->
|
||
<inherited>false</inherited>
|
||
<executions>
|
||
<execution>
|
||
<phase>package</phase>
|
||
<goals>
|
||
<goal>transform</goal>
|
||
</goals>
|
||
<configuration>
|
||
<transformationSets>
|
||
<transformationSet>
|
||
<dir>${project.basedir}/target/</dir>
|
||
<includes>apache-${project.artifactId}-${project.version}-sbom.xml</includes>
|
||
<stylesheet>src/main/xslt/sbom-filter.xsl</stylesheet>
|
||
<outputDir>${project.basedir}/target/</outputDir>
|
||
<fileMappers>
|
||
<fileMapper implementation="org.codehaus.plexus.components.io.filemappers.FileExtensionMapper">
|
||
<targetExtension>transformed.json</targetExtension>
|
||
</fileMapper>
|
||
</fileMappers>
|
||
</transformationSet>
|
||
</transformationSets>
|
||
</configuration>
|
||
</execution>
|
||
</executions>
|
||
<dependencies>
|
||
<dependency>
|
||
<groupId>net.sf.saxon</groupId>
|
||
<artifactId>Saxon-HE</artifactId>
|
||
<version>12.5</version>
|
||
</dependency>
|
||
</dependencies>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>org.codehaus.gmaven</groupId>
|
||
<artifactId>groovy-maven-plugin</artifactId>
|
||
<version>2.1.1</version>
|
||
<!-- Only run this in the root module of the project -->
|
||
<inherited>false</inherited>
|
||
<executions>
|
||
<execution>
|
||
<id>compare-with-reference-list</id>
|
||
<phase>verify</phase>
|
||
<goals>
|
||
<goal>execute</goal>
|
||
</goals>
|
||
<configuration>
|
||
<properties>
|
||
<skipDependencyCheck>${dependencyCheck.skip}</skipDependencyCheck>
|
||
</properties>
|
||
<source>src/main/groovy/checkDependencies.groovy</source>
|
||
</configuration>
|
||
</execution>
|
||
</executions>
|
||
<dependencies>
|
||
<dependency>
|
||
<groupId>org.apache.groovy</groupId>
|
||
<artifactId>groovy</artifactId>
|
||
<version>4.0.22</version>
|
||
</dependency>
|
||
</dependencies>
|
||
</plugin>
|
||
</plugins>
|
||
</build>
|
||
<licenses>
|
||
<license>
|
||
<name>The Apache License, Version 2.0</name>
|
||
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
|
||
</license>
|
||
</licenses>
|
||
<mailingLists>
|
||
<mailingList>
|
||
<name>Apache IoTDB Developer List</name>
|
||
<subscribe>mailto:dev-subscribe@iotdb.apache.org</subscribe>
|
||
<unsubscribe>mailto:dev-unsubscribe@iotdb.apache.org</unsubscribe>
|
||
<post>mailto:dev@iotdb.apache.org</post>
|
||
<archive>http://mail-archives.apache.org/mod_mbox/iotdb-dev/</archive>
|
||
</mailingList>
|
||
<mailingList>
|
||
<name>IoTDB Commits List</name>
|
||
<subscribe>mailto:commit-subscribe@iotdb.apache.org</subscribe>
|
||
<unsubscribe>mailto:commits-unsubscribe@iotdb.apache.org</unsubscribe>
|
||
<post>mailto:commits@iotdb.apache.org</post>
|
||
<archive>http://mail-archives.apache.org/mod_mbox/iotdb-commits/</archive>
|
||
</mailingList>
|
||
<mailingList>
|
||
<name>IoTDB Jira Notifications List</name>
|
||
<subscribe>mailto:notifications-subscribe@iotdb.apache.org</subscribe>
|
||
<unsubscribe>mailto:notifications-unsubscribe@iotdb.apache.org</unsubscribe>
|
||
<post>mailto:notifications@iotdb.apache.org</post>
|
||
<archive>http://mail-archives.apache.org/mod_mbox/iotdb-notifications/</archive>
|
||
</mailingList>
|
||
</mailingLists>
|
||
<scm>
|
||
<connection>scm:git:ssh://git@github.com/apache/iotdb.git</connection>
|
||
<developerConnection>scm:git:ssh://git@github.com/apache/iotdb.git</developerConnection>
|
||
<url>ssh://git@github.com:apache/iotdb.git</url>
|
||
<tag>rel/0.10</tag>
|
||
</scm>
|
||
<issueManagement>
|
||
<system>Jira</system>
|
||
<url>https://issues.apache.org/jira/browse/iotdb</url>
|
||
</issueManagement>
|
||
<!-- Only configure the site distribution as the rest is handled by the apache parent -->
|
||
<distributionManagement>
|
||
<site>
|
||
<id>apache.website</id>
|
||
<url>scm:git:https://gitbox.apache.org/repos/asf/iotdb-website.git</url>
|
||
</site>
|
||
</distributionManagement>
|
||
<profiles>
|
||
<!--
|
||
A set of profiles defining the different properties needed to download and run thrift
|
||
They are automatically activated depending on the OS you are using.
|
||
-->
|
||
<profile>
|
||
<id>.os-unix</id>
|
||
<activation>
|
||
<os>
|
||
<name>Linux</name>
|
||
<family>unix</family>
|
||
<arch>!aarch64</arch>
|
||
</os>
|
||
</activation>
|
||
<properties>
|
||
<cmake.generator>Unix Makefiles</cmake.generator>
|
||
<os.classifier>linux-x86_64</os.classifier>
|
||
<thrift.executable>thrift</thrift.executable>
|
||
<python.venv.bin>venv/bin/</python.venv.bin>
|
||
<python.exe.bin>python3</python.exe.bin>
|
||
</properties>
|
||
</profile>
|
||
<profile>
|
||
<id>.os-unix-arm</id>
|
||
<activation>
|
||
<os>
|
||
<name>Linux</name>
|
||
<family>unix</family>
|
||
<arch>aarch64</arch>
|
||
</os>
|
||
</activation>
|
||
<properties>
|
||
<cmake.generator>Unix Makefiles</cmake.generator>
|
||
<os.classifier>linux-aarch64</os.classifier>
|
||
<thrift.executable>thrift</thrift.executable>
|
||
<python.venv.bin>venv/bin/</python.venv.bin>
|
||
<python.exe.bin>python3</python.exe.bin>
|
||
</properties>
|
||
</profile>
|
||
<profile>
|
||
<id>.os-mac</id>
|
||
<activation>
|
||
<os>
|
||
<family>mac</family>
|
||
<arch>!aarch64</arch>
|
||
</os>
|
||
</activation>
|
||
<properties>
|
||
<boost.include.dir>/usr/local/include</boost.include.dir>
|
||
<cmake.generator>Unix Makefiles</cmake.generator>
|
||
<os.classifier>mac-x86_64</os.classifier>
|
||
<thrift.executable>thrift</thrift.executable>
|
||
<python.venv.bin>venv/bin/</python.venv.bin>
|
||
<python.exe.bin>python3</python.exe.bin>
|
||
</properties>
|
||
</profile>
|
||
<profile>
|
||
<id>.os-mac-arm</id>
|
||
<activation>
|
||
<os>
|
||
<family>mac</family>
|
||
<arch>aarch64</arch>
|
||
</os>
|
||
</activation>
|
||
<properties>
|
||
<boost.include.dir>/opt/homebrew/opt/boost/include</boost.include.dir>
|
||
<cmake.generator>Unix Makefiles</cmake.generator>
|
||
<os.classifier>mac-aarch64</os.classifier>
|
||
<thrift.executable>thrift</thrift.executable>
|
||
<python.venv.bin>venv/bin/</python.venv.bin>
|
||
<python.exe.bin>python3</python.exe.bin>
|
||
</properties>
|
||
</profile>
|
||
<profile>
|
||
<id>.os-windows</id>
|
||
<activation>
|
||
<os>
|
||
<family>windows</family>
|
||
<arch>!aarch64</arch>
|
||
</os>
|
||
</activation>
|
||
<properties>
|
||
<!-- The generated code relied on Boost and that relies on VS and can't be built with MinGW -->
|
||
<cmake.generator>Visual Studio 17 2022</cmake.generator>
|
||
<os.classifier>windows-x86_64</os.classifier>
|
||
<thrift.executable>Release/thrift.exe</thrift.executable>
|
||
<python.venv.bin>venv/Scripts/</python.venv.bin>
|
||
<python.exe.bin>python</python.exe.bin>
|
||
</properties>
|
||
</profile>
|
||
<profile>
|
||
<id>.os-windows-arm</id>
|
||
<activation>
|
||
<os>
|
||
<family>windows</family>
|
||
<arch>aarch64</arch>
|
||
</os>
|
||
</activation>
|
||
<properties>
|
||
<!-- The generated code relied on Boost and that relies on VS and can't be built with MinGW -->
|
||
<cmake.generator>Visual Studio 17 2022</cmake.generator>
|
||
<os.classifier>windows-aarch64</os.classifier>
|
||
<thrift.executable>Release/thrift.exe</thrift.executable>
|
||
<python.venv.bin>venv/Scripts/</python.venv.bin>
|
||
<python.exe.bin>python</python.exe.bin>
|
||
</properties>
|
||
</profile>
|
||
<profile>
|
||
<id>.java-9-and-above</id>
|
||
<activation>
|
||
<jdk>[9,)</jdk>
|
||
</activation>
|
||
<properties>
|
||
<maven.compiler.release>8</maven.compiler.release>
|
||
<!--
|
||
Add argLine for Java 9 and above, due to
|
||
[JEP 260: Encapsulate Most Internal APIs],
|
||
[JEP 396: Strongly Encapsulate JDK Internals by Default],
|
||
[JEP 403: Strongly Encapsulate JDK Internals]
|
||
-->
|
||
<argLine><![CDATA[
|
||
--add-opens=java.base/java.lang=ALL-UNNAMED
|
||
--add-opens=java.base/java.util=ALL-UNNAMED
|
||
--add-opens=java.base/java.nio=ALL-UNNAMED
|
||
--add-opens=java.base/java.io=ALL-UNNAMED
|
||
--add-opens=java.base/java.net=ALL-UNNAMED
|
||
--add-opens=java.base/java.util.concurrent=ALL-UNNAMED
|
||
--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED
|
||
--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED
|
||
--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED
|
||
--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED
|
||
--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED
|
||
]]></argLine>
|
||
</properties>
|
||
</profile>
|
||
<!-- Current version of spotless cannot support JDK11 below -->
|
||
<profile>
|
||
<id>.java-11-below</id>
|
||
<activation>
|
||
<jdk>(,11]</jdk>
|
||
</activation>
|
||
<properties>
|
||
<!-- This was the last version to support Java 8, Just for run -->
|
||
<spotless.version>2.27.1</spotless.version>
|
||
<!-- To avoid format conflicts -->
|
||
<spotless.skip>true</spotless.skip>
|
||
</properties>
|
||
</profile>
|
||
<!-- Little helper profile that will disable running the cmake tests when the maven tests are being skipped -->
|
||
<profile>
|
||
<id>.skipTests</id>
|
||
<activation>
|
||
<property>
|
||
<name>skipTests</name>
|
||
</property>
|
||
</activation>
|
||
<properties>
|
||
<ctest.skip.tests>true</ctest.skip.tests>
|
||
</properties>
|
||
</profile>
|
||
<!--
|
||
Self activating profile, that activates itself as soon as a "src/main/thrift" directory is found.
|
||
The different plugins here download the thrift executable matching the current os, make that
|
||
executable (on mac and unix/linux) and run the code generation.
|
||
|
||
Note to the Download: The download-maven-plugin checks if a resource is previously downloaded
|
||
and only downloads each file once. It caches downloaded files in:
|
||
{maven local repo}/.cache/download-maven-plugin
|
||
-->
|
||
<profile>
|
||
<id>.thrift-generation</id>
|
||
<activation>
|
||
<file>
|
||
<exists>src/main/thrift</exists>
|
||
</file>
|
||
</activation>
|
||
<properties>
|
||
<thrift.exec.absolute.path>${project.build.directory}/thrift/bin/${thrift.executable}</thrift.exec.absolute.path>
|
||
</properties>
|
||
<build>
|
||
<plugins>
|
||
<plugin>
|
||
<groupId>org.apache.maven.plugins</groupId>
|
||
<artifactId>maven-dependency-plugin</artifactId>
|
||
<executions>
|
||
<execution>
|
||
<id>get-thrift</id>
|
||
<goals>
|
||
<goal>unpack</goal>
|
||
</goals>
|
||
<phase>generate-sources</phase>
|
||
<configuration>
|
||
<artifactItems>
|
||
<artifactItem>
|
||
<groupId>org.apache.iotdb.tools</groupId>
|
||
<artifactId>iotdb-tools-thrift</artifactId>
|
||
<version>${iotdb-tools-thrift.version}</version>
|
||
<classifier>${os.classifier}</classifier>
|
||
<type>zip</type>
|
||
<overWrite>true</overWrite>
|
||
<outputDirectory>${project.build.directory}/thrift</outputDirectory>
|
||
</artifactItem>
|
||
</artifactItems>
|
||
</configuration>
|
||
</execution>
|
||
</executions>
|
||
</plugin>
|
||
<plugin>
|
||
<groupId>org.apache.thrift</groupId>
|
||
<artifactId>thrift-maven-plugin</artifactId>
|
||
<configuration>
|
||
<thriftExecutable>${thrift.exec.absolute.path}</thriftExecutable>
|
||
<thriftSourceRoot>${project.basedir}/src/main/thrift</thriftSourceRoot>
|
||
</configuration>
|
||
<executions>
|
||
<execution>
|
||
<id>generate-thrift-sources-java</id>
|
||
<goals>
|
||
<goal>compile</goal>
|
||
</goals>
|
||
<phase>generate-sources</phase>
|
||
<configuration>
|
||
<generator>java</generator>
|
||
</configuration>
|
||
</execution>
|
||
<execution>
|
||
<id>generate-thrift-sources-python</id>
|
||
<goals>
|
||
<goal>compile</goal>
|
||
</goals>
|
||
<phase>generate-sources</phase>
|
||
<configuration>
|
||
<generator>py</generator>
|
||
<includes>**/common.thrift,**/client.thrift,**/datanode.thrift,**/confignode.thrift,**/ainode.thrift</includes>
|
||
<outputDirectory>${project.build.directory}/generated-sources-python/</outputDirectory>
|
||
</configuration>
|
||
</execution>
|
||
<execution>
|
||
<id>generate-thrift-sources-go</id>
|
||
<goals>
|
||
<goal>compile</goal>
|
||
</goals>
|
||
<phase>generate-sources</phase>
|
||
<configuration>
|
||
<generator>go:package_prefix=github.com/apache/iotdb-client-go/</generator>
|
||
<includes>**/common.thrift,**/client.thrift</includes>
|
||
<outputDirectory>${project.build.directory}/generated-sources-go</outputDirectory>
|
||
</configuration>
|
||
</execution>
|
||
</executions>
|
||
</plugin>
|
||
</plugins>
|
||
</build>
|
||
</profile>
|
||
<!-- Enable integration-testsuite on demand, as this takes quite a long time to run -->
|
||
<profile>
|
||
<id>with-integration-tests</id>
|
||
<modules>
|
||
<module>integration-test</module>
|
||
</modules>
|
||
</profile>
|
||
<!-- Make sure the source assembly has the right name -->
|
||
<profile>
|
||
<id>apache-release</id>
|
||
<build>
|
||
<plugins>
|
||
<plugin>
|
||
<groupId>org.apache.maven.plugins</groupId>
|
||
<artifactId>maven-assembly-plugin</artifactId>
|
||
<executions>
|
||
<execution>
|
||
<id>source-release-assembly</id>
|
||
<goals>
|
||
<goal>single</goal>
|
||
</goals>
|
||
<phase>package</phase>
|
||
<!--
|
||
heads up: combine.self in the following is highlighted
|
||
as an error in Eclipse's xml editor view.
|
||
Just ignore that.
|
||
See https://issues.apache.org/jira/browse/MNG-5454 sigh.
|
||
-->
|
||
<configuration combine.self="append">
|
||
<finalName>apache-iotdb-${project.version}</finalName>
|
||
<archive>
|
||
<manifest>
|
||
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
|
||
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
|
||
</manifest>
|
||
</archive>
|
||
</configuration>
|
||
</execution>
|
||
</executions>
|
||
</plugin>
|
||
<!--
|
||
Generate an SBOM for the project
|
||
-->
|
||
<plugin>
|
||
<groupId>org.cyclonedx</groupId>
|
||
<artifactId>cyclonedx-maven-plugin</artifactId>
|
||
<!-- Only run this in the root module of the project -->
|
||
<inherited>false</inherited>
|
||
<configuration>
|
||
<outputName>apache-${project.artifactId}-${project.version}-sbom</outputName>
|
||
</configuration>
|
||
<executions>
|
||
<execution>
|
||
<goals>
|
||
<goal>makeAggregateBom</goal>
|
||
</goals>
|
||
<phase>package</phase>
|
||
</execution>
|
||
</executions>
|
||
</plugin>
|
||
<!--
|
||
Create SHA512 checksum files for the release artifacts.
|
||
-->
|
||
<plugin>
|
||
<groupId>net.nicoulaj.maven.plugins</groupId>
|
||
<artifactId>checksum-maven-plugin</artifactId>
|
||
<executions>
|
||
<execution>
|
||
<id>sign-source-release</id>
|
||
<goals>
|
||
<goal>files</goal>
|
||
</goals>
|
||
<phase>package</phase>
|
||
<configuration>
|
||
<algorithms>
|
||
<algorithm>SHA-512</algorithm>
|
||
</algorithms>
|
||
<fileSets>
|
||
<fileSet>
|
||
<directory>${project.build.directory}</directory>
|
||
<includes>
|
||
<include>apache-iotdb-${project.version}-source-release.zip</include>
|
||
</includes>
|
||
</fileSet>
|
||
</fileSets>
|
||
<failIfNoFiles>false</failIfNoFiles>
|
||
</configuration>
|
||
</execution>
|
||
</executions>
|
||
</plugin>
|
||
</plugins>
|
||
</build>
|
||
</profile>
|
||
<!-- code coverage for ut and it, and then merge them together.-->
|
||
<profile>
|
||
<id>with-code-coverage</id>
|
||
<modules>
|
||
<module>code-coverage</module>
|
||
</modules>
|
||
<build>
|
||
<plugins>
|
||
<!--
|
||
Jacoco is a code coverage analysis plugin when tests run.
|
||
(not a static code analysis tool)
|
||
-->
|
||
<plugin>
|
||
<groupId>org.jacoco</groupId>
|
||
<artifactId>jacoco-maven-plugin</artifactId>
|
||
<configuration>
|
||
<excludes>
|
||
<exclude>org/apache/iotdb/service/sync/thrift/*</exclude>
|
||
<exclude>org/apache/iotdb/service/rpc/thrift/*</exclude>
|
||
<exclude>org/apache/iotdb/db/qp/sql/*</exclude>
|
||
</excludes>
|
||
<rules>
|
||
<rule implementation="org.jacoco.maven.RuleConfiguration">
|
||
<element>BUNDLE</element>
|
||
<limits>
|
||
<!-- Cover methodes >=30%. (the plugin does not support
|
||
ignore getter and setter and toString etc..) -->
|
||
<limit implementation="org.jacoco.report.check.Limit">
|
||
<counter>METHOD</counter>
|
||
<value>COVEREDRATIO</value>
|
||
<minimum>0.00</minimum>
|
||
</limit>
|
||
<!-- if-else, swtich etc.. >=70% -->
|
||
<limit implementation="org.jacoco.report.check.Limit">
|
||
<counter>BRANCH</counter>
|
||
<value>COVEREDRATIO</value>
|
||
<minimum>0.00</minimum>
|
||
</limit>
|
||
<!-- class files >=95% -->
|
||
<limit implementation="org.jacoco.report.check.Limit">
|
||
<counter>CLASS</counter>
|
||
<value>COVEREDRATIO</value>
|
||
<minimum>0.00</minimum>
|
||
</limit>
|
||
</limits>
|
||
</rule>
|
||
</rules>
|
||
</configuration>
|
||
<executions>
|
||
<!-- see https://natritmeyer.com/howto/reporting-aggregated-unit-and-integration-test-coverage-with-jacoco/-->
|
||
<!-- For UT-->
|
||
<execution>
|
||
<id>prepare-ut</id>
|
||
<goals>
|
||
<goal>prepare-agent</goal>
|
||
</goals>
|
||
<configuration>
|
||
<destFile>${project.build.directory}/${project.build.finalName}-jacoco-unit-tests.exec</destFile>
|
||
<propertyName>surefire.jacoco.args</propertyName>
|
||
</configuration>
|
||
</execution>
|
||
<!-- attached to Maven test phase -->
|
||
<execution>
|
||
<id>ut-report</id>
|
||
<goals>
|
||
<goal>report</goal>
|
||
<goal>check</goal>
|
||
</goals>
|
||
<phase>test</phase>
|
||
<configuration>
|
||
<dataFile>${project.build.directory}/${project.build.finalName}-jacoco-unit-tests.exec</dataFile>
|
||
<outputDirectory>${project.build.directory}/jacoco-unit-reports</outputDirectory>
|
||
</configuration>
|
||
</execution>
|
||
<!-- For IT-->
|
||
<execution>
|
||
<id>before-integration-test-execution</id>
|
||
<goals>
|
||
<goal>prepare-agent</goal>
|
||
</goals>
|
||
<phase>pre-integration-test</phase>
|
||
<configuration>
|
||
<destFile>${project.build.directory}/${project.build.finalName}-jacoco-integration-tests.exec</destFile>
|
||
<propertyName>failsafe.jacoco.args</propertyName>
|
||
</configuration>
|
||
</execution>
|
||
<execution>
|
||
<id>after-integration-test-execution</id>
|
||
<goals>
|
||
<goal>report</goal>
|
||
<goal>check</goal>
|
||
</goals>
|
||
<phase>integration-test</phase>
|
||
<configuration>
|
||
<dataFile>${project.build.directory}/${project.build.finalName}-jacoco-integration-tests.exec</dataFile>
|
||
<outputDirectory>${project.build.directory}/jacoco-integration-reports</outputDirectory>
|
||
</configuration>
|
||
</execution>
|
||
<execution>
|
||
<id>merge-unit-and-integration</id>
|
||
<goals>
|
||
<goal>merge</goal>
|
||
</goals>
|
||
<phase>post-integration-test</phase>
|
||
<configuration>
|
||
<fileSets>
|
||
<fileSet>
|
||
<directory>${project.build.directory}/</directory>
|
||
<includes>
|
||
<include>*.exec</include>
|
||
</includes>
|
||
</fileSet>
|
||
</fileSets>
|
||
<destFile>${project.build.directory}/${project.build.finalName}-merged.exec</destFile>
|
||
</configuration>
|
||
</execution>
|
||
<execution>
|
||
<id>create-merged-report</id>
|
||
<goals>
|
||
<goal>report</goal>
|
||
<goal>check</goal>
|
||
</goals>
|
||
<phase>post-integration-test</phase>
|
||
<configuration>
|
||
<dataFile>${project.build.directory}/${project.build.finalName}-merged.exec</dataFile>
|
||
<outputDirectory>${project.build.directory}/jacoco-merged-reports</outputDirectory>
|
||
</configuration>
|
||
</execution>
|
||
</executions>
|
||
</plugin>
|
||
<!-- overwrite argLine-->
|
||
<plugin>
|
||
<groupId>org.apache.maven.plugins</groupId>
|
||
<artifactId>maven-surefire-plugin</artifactId>
|
||
<configuration>
|
||
<argLine>${argLine} @{surefire.jacoco.args} -Xmx1024m</argLine>
|
||
</configuration>
|
||
</plugin>
|
||
<!-- for IT-->
|
||
<plugin>
|
||
<groupId>org.apache.maven.plugins</groupId>
|
||
<artifactId>maven-failsafe-plugin</artifactId>
|
||
<configuration>
|
||
<argLine>${argLine} @{failsafe.jacoco.args} -Xmx1024m</argLine>
|
||
</configuration>
|
||
<executions>
|
||
<execution>
|
||
<goals>
|
||
<goal>integration-test</goal>
|
||
<goal>verify</goal>
|
||
</goals>
|
||
</execution>
|
||
</executions>
|
||
</plugin>
|
||
</plugins>
|
||
</build>
|
||
</profile>
|
||
<profile>
|
||
<id>enforce</id>
|
||
<properties>
|
||
<enforcer.skip>false</enforcer.skip>
|
||
</properties>
|
||
</profile>
|
||
</profiles>
|
||
</project>
|