PR(https://github.com/apache/doris/pull/19909) has implemented the framework of hudi reader for MOR table. This PR completes all functions of reading MOR table and enables end-to-end queries. Key Implementations: 1. Use hudi meta information to generate the table schema, not from hive client. 2. Use hive client to list hudi partitions, so it strongly depends the sync-tools(https://hudi.apache.org/docs/syncing_metastore/) which syncs the partitions of hudi into hive metastore. However, we may get the hudi partitions directly from .hoodie directory. 3. Remove `HudiHMSExternalCatalog`, because other catalogs like glue is compatible with hive catalog. 4. Read the COW table originally from c++. 5. Hudi RecordReader will use ProcessBuilder to start a hotspot debugger process, which may be stuck when attaching the origin JNI process, soI use a tricky method to kill this useless process.
1022 lines
41 KiB
XML
1022 lines
41 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:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
|
|
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.doris</groupId>
|
|
<version>${revision}</version>
|
|
<artifactId>fe</artifactId>
|
|
<relativePath>../pom.xml</relativePath>
|
|
</parent>
|
|
<artifactId>fe-core</artifactId>
|
|
<packaging>jar</packaging>
|
|
<properties>
|
|
<doris.home>${basedir}/../../</doris.home>
|
|
<doris.thirdparty>${basedir}/../../thirdparty</doris.thirdparty>
|
|
<fe_ut_parallel>1</fe_ut_parallel>
|
|
<antlr4.version>4.9.3</antlr4.version>
|
|
<awssdk.version>2.17.257</awssdk.version>
|
|
<paimon.version>0.4-SNAPSHOT</paimon.version>
|
|
</properties>
|
|
<profiles>
|
|
<profile>
|
|
<id>thirdparty</id>
|
|
<activation>
|
|
<property>
|
|
<name>env.DORIS_THIRDPARTY</name>
|
|
</property>
|
|
</activation>
|
|
<properties>
|
|
<doris.thirdparty>${env.DORIS_THIRDPARTY}</doris.thirdparty>
|
|
</properties>
|
|
</profile>
|
|
<profile>
|
|
<id>ut_parallel</id>
|
|
<activation>
|
|
<property>
|
|
<name>env.FE_UT_PARALLEL</name>
|
|
</property>
|
|
</activation>
|
|
<properties>
|
|
<fe_ut_parallel>${env.FE_UT_PARALLEL}</fe_ut_parallel>
|
|
</properties>
|
|
</profile>
|
|
<profile>
|
|
<id>protoc_rosetta</id>
|
|
<activation>
|
|
<os>
|
|
<name>Mac OS X</name>
|
|
<arch>aarch64</arch>
|
|
</os>
|
|
</activation>
|
|
<properties>
|
|
<protoc.artifact>com.google.protobuf:protoc:${protobuf.version}:exe:osx-x86_64</protoc.artifact>
|
|
<grpc.java.artifact>io.grpc:protoc-gen-grpc-java:${grpc.version}:exe:osx-x86_64</grpc.java.artifact>
|
|
</properties>
|
|
</profile>
|
|
<profile>
|
|
<id>protoc_command</id>
|
|
<activation>
|
|
<file>
|
|
<exists>${doris.thirdparty}/installed/bin/protoc</exists>
|
|
</file>
|
|
</activation>
|
|
<properties>
|
|
<protoc.command>${doris.thirdparty}/installed/bin/protoc</protoc.command>
|
|
</properties>
|
|
</profile>
|
|
</profiles>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>${project.groupId}</groupId>
|
|
<artifactId>fe-common</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.logging.log4j</groupId>
|
|
<artifactId>log4j-web</artifactId>
|
|
<version>${log4j2.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-devtools</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-data-ldap</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>commons-pool</groupId>
|
|
<artifactId>commons-pool</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.commons</groupId>
|
|
<artifactId>commons-text</artifactId>
|
|
</dependency>
|
|
<!-- https://mvnrepository.com/artifact/cglib/cglib -->
|
|
<dependency>
|
|
<groupId>cglib</groupId>
|
|
<artifactId>cglib</artifactId>
|
|
</dependency>
|
|
<!-- https://mvnrepository.com/artifact/commons-cli/commons-cli -->
|
|
<dependency>
|
|
<groupId>commons-cli</groupId>
|
|
<artifactId>commons-cli</artifactId>
|
|
</dependency>
|
|
<!-- https://mvnrepository.com/artifact/commons-codec/commons-codec -->
|
|
<dependency>
|
|
<groupId>commons-codec</groupId>
|
|
<artifactId>commons-codec</artifactId>
|
|
</dependency>
|
|
<!-- https://mvnrepository.com/artifact/commons-lang/commons-lang -->
|
|
<dependency>
|
|
<groupId>commons-lang</groupId>
|
|
<artifactId>commons-lang</artifactId>
|
|
</dependency>
|
|
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
|
|
<dependency>
|
|
<groupId>org.apache.commons</groupId>
|
|
<artifactId>commons-lang3</artifactId>
|
|
</dependency>
|
|
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-pool2 -->
|
|
<dependency>
|
|
<groupId>org.apache.commons</groupId>
|
|
<artifactId>commons-pool2</artifactId>
|
|
</dependency>
|
|
<!-- https://mvnrepository.com/artifact/commons-validator/commons-validator -->
|
|
<dependency>
|
|
<groupId>commons-validator</groupId>
|
|
<artifactId>commons-validator</artifactId>
|
|
</dependency>
|
|
<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
|
|
<dependency>
|
|
<groupId>com.google.code.gson</groupId>
|
|
<artifactId>gson</artifactId>
|
|
</dependency>
|
|
<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
|
|
<dependency>
|
|
<groupId>com.google.guava</groupId>
|
|
<artifactId>guava</artifactId>
|
|
</dependency>
|
|
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.core</groupId>
|
|
<artifactId>jackson-core</artifactId>
|
|
</dependency>
|
|
<!-- https://mvnrepository.com/artifact/net.sourceforge.czt.dev/java-cup -->
|
|
<dependency>
|
|
<groupId>net.sourceforge.czt.dev</groupId>
|
|
<artifactId>java-cup</artifactId>
|
|
</dependency>
|
|
<!-- https://mvnrepository.com/artifact/org.javassist/javassist -->
|
|
<dependency>
|
|
<groupId>org.javassist</groupId>
|
|
<artifactId>javassist</artifactId>
|
|
</dependency>
|
|
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
|
|
<dependency>
|
|
<groupId>javax.servlet</groupId>
|
|
<artifactId>javax.servlet-api</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.doris</groupId>
|
|
<artifactId>je</artifactId>
|
|
</dependency>
|
|
<!-- https://mvnrepository.com/artifact/de.jflex/jflex -->
|
|
<dependency>
|
|
<groupId>de.jflex</groupId>
|
|
<artifactId>jflex</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>commons-io</groupId>
|
|
<artifactId>commons-io</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.googlecode.json-simple</groupId>
|
|
<artifactId>json-simple</artifactId>
|
|
<exclusions>
|
|
<exclusion>
|
|
<groupId>junit</groupId>
|
|
<artifactId>junit</artifactId>
|
|
</exclusion>
|
|
</exclusions>
|
|
</dependency>
|
|
<!-- https://mvnrepository.com/artifact/io.dropwizard.metrics/metrics-core -->
|
|
<dependency>
|
|
<groupId>io.dropwizard.metrics</groupId>
|
|
<artifactId>metrics-core</artifactId>
|
|
</dependency>
|
|
<!-- https://mvnrepository.com/artifact/io.netty/netty-all -->
|
|
<dependency>
|
|
<groupId>io.netty</groupId>
|
|
<artifactId>netty-all</artifactId>
|
|
</dependency>
|
|
<!-- https://mvnrepository.com/artifact/org.objenesis/objenesis -->
|
|
<dependency>
|
|
<groupId>org.objenesis</groupId>
|
|
<artifactId>objenesis</artifactId>
|
|
</dependency>
|
|
<!-- https://mvnrepository.com/artifact/com.google.protobuf/protobuf-java -->
|
|
<dependency>
|
|
<groupId>com.google.protobuf</groupId>
|
|
<artifactId>protobuf-java</artifactId>
|
|
</dependency>
|
|
<!-- https://mvnrepository.com/artifact/com.squareup/protoparser -->
|
|
<dependency>
|
|
<groupId>com.squareup</groupId>
|
|
<artifactId>protoparser</artifactId>
|
|
</dependency>
|
|
<!-- https://mvnrepository.com/artifact/org.xerial.snappy/snappy-java -->
|
|
<dependency>
|
|
<groupId>org.xerial.snappy</groupId>
|
|
<artifactId>snappy-java</artifactId>
|
|
</dependency>
|
|
<!-- for k8s client-->
|
|
<!-- https://mvnrepository.com/artifact/dk.brics.automaton/automaton -->
|
|
<dependency>
|
|
<groupId>dk.brics.automaton</groupId>
|
|
<artifactId>automaton</artifactId>
|
|
</dependency>
|
|
<!-- https://mvnrepository.com/artifact/com.github.mifmif/generex -->
|
|
<dependency>
|
|
<groupId>com.github.mifmif</groupId>
|
|
<artifactId>generex</artifactId>
|
|
</dependency>
|
|
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.core</groupId>
|
|
<artifactId>jackson-annotations</artifactId>
|
|
</dependency>
|
|
|
|
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.dataformat/jackson-dataformat-yaml -->
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.dataformat</groupId>
|
|
<artifactId>jackson-dataformat-yaml</artifactId>
|
|
</dependency>
|
|
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.module/jackson-module-jaxb-annotations -->
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.module</groupId>
|
|
<artifactId>jackson-module-jaxb-annotations</artifactId>
|
|
</dependency>
|
|
<!-- https://mvnrepository.com/artifact/io.fabric8/kubernetes-client -->
|
|
<dependency>
|
|
<groupId>io.fabric8</groupId>
|
|
<artifactId>kubernetes-client</artifactId>
|
|
</dependency>
|
|
<!-- https://mvnrepository.com/artifact/io.fabric8/kubernetes-model -->
|
|
<dependency>
|
|
<groupId>io.fabric8</groupId>
|
|
<artifactId>kubernetes-model</artifactId>
|
|
</dependency>
|
|
<!-- https://mvnrepository.com/artifact/com.squareup.okhttp3/logging-interceptor -->
|
|
<dependency>
|
|
<groupId>com.squareup.okhttp3</groupId>
|
|
<artifactId>logging-interceptor</artifactId>
|
|
</dependency>
|
|
<!-- https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp -->
|
|
<dependency>
|
|
<groupId>com.squareup.okhttp3</groupId>
|
|
<artifactId>okhttp</artifactId>
|
|
</dependency>
|
|
<!-- https://mvnrepository.com/artifact/com.squareup.okio/okio -->
|
|
<dependency>
|
|
<groupId>com.squareup.okio</groupId>
|
|
<artifactId>okio</artifactId>
|
|
</dependency>
|
|
<!-- https://mvnrepository.com/artifact/org.yaml/snakeyaml -->
|
|
<dependency>
|
|
<groupId>org.yaml</groupId>
|
|
<artifactId>snakeyaml</artifactId>
|
|
</dependency>
|
|
<!-- https://mvnrepository.com/artifact/javax.validation/validation-api -->
|
|
<dependency>
|
|
<groupId>javax.validation</groupId>
|
|
<artifactId>validation-api</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.kafka</groupId>
|
|
<artifactId>kafka-clients</artifactId>
|
|
</dependency>
|
|
<!-- https://mvnrepository.com/artifact/com.github.oshi/oshi-core -->
|
|
<dependency>
|
|
<groupId>com.github.oshi</groupId>
|
|
<artifactId>oshi-core</artifactId>
|
|
</dependency>
|
|
<!-- https://mvnrepository.com/artifact/org.jboss.xnio/xnio-nio -->
|
|
<dependency>
|
|
<groupId>org.jboss.xnio</groupId>
|
|
<artifactId>xnio-nio</artifactId>
|
|
</dependency>
|
|
<!-- support jdk9 -->
|
|
<dependency>
|
|
<groupId>javax.annotation</groupId>
|
|
<artifactId>javax.annotation-api</artifactId>
|
|
</dependency>
|
|
<!-- support jdk9 -->
|
|
<dependency>
|
|
<groupId>com.sun.activation</groupId>
|
|
<artifactId>javax.activation</artifactId>
|
|
</dependency>
|
|
<!-- support jdk11 -->
|
|
<!-- https://mvnrepository.com/artifact/javax.xml.ws/jaxws-api -->
|
|
<dependency>
|
|
<groupId>javax.xml.ws</groupId>
|
|
<artifactId>jaxws-api</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.roaringbitmap</groupId>
|
|
<artifactId>RoaringBitmap</artifactId>
|
|
</dependency>
|
|
<!-- spark -->
|
|
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core_2.12 -->
|
|
<dependency>
|
|
<groupId>org.apache.spark</groupId>
|
|
<artifactId>spark-core_2.12</artifactId>
|
|
</dependency>
|
|
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-launcher_2.12 -->
|
|
<dependency>
|
|
<groupId>org.apache.spark</groupId>
|
|
<artifactId>spark-launcher_2.12</artifactId>
|
|
</dependency>
|
|
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-sql_2.12 -->
|
|
<dependency>
|
|
<groupId>org.apache.spark</groupId>
|
|
<artifactId>spark-sql_2.12</artifactId>
|
|
</dependency>
|
|
<!-- https://mvnrepository.com/artifact/com.alibaba.otter/canal.client -->
|
|
<dependency>
|
|
<groupId>com.alibaba.otter</groupId>
|
|
<artifactId>canal.client</artifactId>
|
|
<version>1.1.6</version>
|
|
<exclusions>
|
|
<exclusion>
|
|
<groupId>ch.qos.logback</groupId>
|
|
<artifactId>logback-core</artifactId>
|
|
</exclusion>
|
|
<exclusion>
|
|
<groupId>ch.qos.logback</groupId>
|
|
<artifactId>logback-classic</artifactId>
|
|
</exclusion>
|
|
<exclusion>
|
|
<artifactId>netty-all</artifactId>
|
|
<groupId>io.netty</groupId>
|
|
</exclusion>
|
|
</exclusions>
|
|
</dependency>
|
|
<!-- https://mvnrepository.com/artifact/com.alibaba.otter/canal.protocol -->
|
|
<dependency>
|
|
<groupId>com.alibaba.otter</groupId>
|
|
<artifactId>canal.protocol</artifactId>
|
|
<version>1.1.6</version>
|
|
<exclusions>
|
|
<exclusion>
|
|
<groupId>ch.qos.logback</groupId>
|
|
<artifactId>logback-core</artifactId>
|
|
</exclusion>
|
|
<exclusion>
|
|
<groupId>ch.qos.logback</groupId>
|
|
<artifactId>logback-classic</artifactId>
|
|
</exclusion>
|
|
<exclusion>
|
|
<artifactId>netty-all</artifactId>
|
|
<groupId>io.netty</groupId>
|
|
</exclusion>
|
|
</exclusions>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.hadoop</groupId>
|
|
<artifactId>hadoop-aws</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.amazonaws</groupId>
|
|
<artifactId>aws-java-sdk-s3</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.amazonaws</groupId>
|
|
<artifactId>aws-java-sdk-glue</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.amazonaws</groupId>
|
|
<artifactId>aws-java-sdk-dynamodb</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.huaweicloud</groupId>
|
|
<artifactId>hadoop-huaweicloud</artifactId>
|
|
<version>3.1.1-hw-45</version>
|
|
<exclusions>
|
|
<exclusion>
|
|
<artifactId>jackson-databind</artifactId>
|
|
<groupId>com.fasterxml.jackson.core</groupId>
|
|
</exclusion>
|
|
</exclusions>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.aliyun.odps</groupId>
|
|
<artifactId>odps-sdk-core</artifactId>
|
|
</dependency>
|
|
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-web</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter-jetty</artifactId>
|
|
</dependency>
|
|
<!-- File Upload -->
|
|
<dependency>
|
|
<groupId>commons-fileupload</groupId>
|
|
<artifactId>commons-fileupload</artifactId>
|
|
</dependency>
|
|
<!--Spring boot-->
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-configuration-processor</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.springframework.boot</groupId>
|
|
<artifactId>spring-boot-starter</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>net.java.dev.jna</groupId>
|
|
<artifactId>jna</artifactId>
|
|
<version>5.5.0</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>net.java.dev.jna</groupId>
|
|
<artifactId>jna-platform</artifactId>
|
|
<version>5.5.0</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>software.amazon.awssdk</groupId>
|
|
<artifactId>s3</artifactId>
|
|
<version>${awssdk.version}</version>
|
|
<exclusions>
|
|
<exclusion>
|
|
<groupId>software.amazon.awssdk</groupId>
|
|
<artifactId>apache-client</artifactId>
|
|
</exclusion>
|
|
</exclusions>
|
|
</dependency>
|
|
<!-- Fix it-->
|
|
<dependency>
|
|
<groupId>org.awaitility</groupId>
|
|
<artifactId>awaitility</artifactId>
|
|
<version>4.0.3</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.projectlombok</groupId>
|
|
<artifactId>lombok</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>hu.webarticum</groupId>
|
|
<artifactId>tree-printer</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.grpc</groupId>
|
|
<artifactId>grpc-netty-shaded</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.grpc</groupId>
|
|
<artifactId>grpc-protobuf</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.grpc</groupId>
|
|
<artifactId>grpc-stub</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.doris</groupId>
|
|
<artifactId>hive-catalog-shade</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.httpcomponents</groupId>
|
|
<artifactId>httpclient</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.velocity</groupId>
|
|
<artifactId>velocity-engine-core</artifactId>
|
|
</dependency>
|
|
<!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-hdfs -->
|
|
<dependency>
|
|
<groupId>org.apache.hadoop</groupId>
|
|
<artifactId>hadoop-hdfs</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.hadoop</groupId>
|
|
<artifactId>hadoop-auth</artifactId>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>io.opentelemetry</groupId>
|
|
<artifactId>opentelemetry-api</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.opentelemetry</groupId>
|
|
<artifactId>opentelemetry-sdk</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.opentelemetry</groupId>
|
|
<artifactId>opentelemetry-exporter-otlp</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.opentelemetry</groupId>
|
|
<artifactId>opentelemetry-exporter-zipkin</artifactId>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.apache.iceberg</groupId>
|
|
<artifactId>iceberg-core</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.iceberg</groupId>
|
|
<artifactId>iceberg-aws</artifactId>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.apache.paimon</groupId>
|
|
<artifactId>paimon-core</artifactId>
|
|
<version>${paimon.version}</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.apache.paimon</groupId>
|
|
<artifactId>paimon-common</artifactId>
|
|
<version>${paimon.version}</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>org.apache.paimon</groupId>
|
|
<artifactId>paimon-format</artifactId>
|
|
<version>${paimon.version}</version>
|
|
</dependency>
|
|
|
|
<dependency>
|
|
<groupId>software.amazon.awssdk</groupId>
|
|
<artifactId>glue</artifactId>
|
|
<version>${awssdk.version}</version>
|
|
<exclusions>
|
|
<exclusion>
|
|
<groupId>software.amazon.awssdk</groupId>
|
|
<artifactId>apache-client</artifactId>
|
|
</exclusion>
|
|
</exclusions>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>software.amazon.awssdk</groupId>
|
|
<artifactId>sts</artifactId>
|
|
<version>${awssdk.version}</version>
|
|
<exclusions>
|
|
<exclusion>
|
|
<groupId>software.amazon.awssdk</groupId>
|
|
<artifactId>apache-client</artifactId>
|
|
</exclusion>
|
|
</exclusions>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>software.amazon.awssdk</groupId>
|
|
<artifactId>url-connection-client</artifactId>
|
|
<version>${awssdk.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>software.amazon.awssdk</groupId>
|
|
<artifactId>aws-json-protocol</artifactId>
|
|
<version>${awssdk.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>software.amazon.awssdk</groupId>
|
|
<artifactId>protocol-core</artifactId>
|
|
<version>${awssdk.version}</version>
|
|
</dependency>
|
|
<!-- For Iceberg, must be consistent with Iceberg version -->
|
|
<dependency>
|
|
<groupId>org.apache.avro</groupId>
|
|
<artifactId>avro</artifactId>
|
|
</dependency>
|
|
|
|
<!-- https://mvnrepository.com/artifact/org.apache.hudi/hudi-common -->
|
|
<dependency>
|
|
<groupId>org.apache.hudi</groupId>
|
|
<artifactId>hudi-common</artifactId>
|
|
</dependency>
|
|
|
|
<!-- https://mvnrepository.com/artifact/org.apache.hudi/hudi-hadoop-mr -->
|
|
<dependency>
|
|
<groupId>org.apache.hudi</groupId>
|
|
<artifactId>hudi-hadoop-mr</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.parquet</groupId>
|
|
<artifactId>parquet-avro</artifactId>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.mariadb.jdbc</groupId>
|
|
<artifactId>mariadb-java-client</artifactId>
|
|
</dependency>
|
|
|
|
<!-- antl4 -->
|
|
<dependency>
|
|
<groupId>org.antlr</groupId>
|
|
<artifactId>antlr4-runtime</artifactId>
|
|
<version>${antlr4.version}</version>
|
|
</dependency>
|
|
|
|
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
|
|
<dependency>
|
|
<groupId>com.alibaba</groupId>
|
|
<artifactId>druid</artifactId>
|
|
</dependency>
|
|
|
|
<!-- for aliyun dlf -->
|
|
<dependency>
|
|
<groupId>com.aliyun.datalake</groupId>
|
|
<artifactId>metastore-client-hive3</artifactId>
|
|
<exclusions>
|
|
<exclusion>
|
|
<groupId>com.aliyun</groupId>
|
|
<artifactId>tea</artifactId>
|
|
</exclusion>
|
|
<exclusion>
|
|
<groupId>com.aliyun</groupId>
|
|
<artifactId>tea-openapi</artifactId>
|
|
</exclusion>
|
|
<exclusion>
|
|
<groupId>com.aliyun</groupId>
|
|
<artifactId>tea-util</artifactId>
|
|
</exclusion>
|
|
</exclusions>
|
|
</dependency>
|
|
|
|
<!-- for fe recognize files stored on gcs -->
|
|
<dependency>
|
|
<groupId>com.google.cloud.bigdataoss</groupId>
|
|
<artifactId>gcs-connector</artifactId>
|
|
<version>hadoop2-2.2.8</version>
|
|
<classifier>shaded</classifier>
|
|
<exclusions>
|
|
<exclusion>
|
|
<groupId>*</groupId>
|
|
<artifactId>*</artifactId>
|
|
</exclusion>
|
|
</exclusions>
|
|
</dependency>
|
|
|
|
<!-- https://mvnrepository.com/artifact/org.apache.ranger/ranger-plugins-common -->
|
|
<dependency>
|
|
<groupId>org.apache.ranger</groupId>
|
|
<artifactId>ranger-plugins-common</artifactId>
|
|
</dependency>
|
|
|
|
<!-- for hudi catalog -->
|
|
<dependency>
|
|
<groupId>com.esotericsoftware</groupId>
|
|
<artifactId>kryo-shaded</artifactId>
|
|
</dependency>
|
|
|
|
</dependencies>
|
|
<repositories>
|
|
<!-- for huawei obs sdk -->
|
|
<repository>
|
|
<id>huawei-obs-sdk</id>
|
|
<url>https://repo.huaweicloud.com/repository/maven/huaweicloudsdk/</url>
|
|
</repository>
|
|
</repositories>
|
|
<build>
|
|
<finalName>doris-fe</finalName>
|
|
<resources>
|
|
<resource>
|
|
<directory>target/generated-sources</directory>
|
|
<excludes>
|
|
<exclude>cup</exclude>
|
|
</excludes>
|
|
</resource>
|
|
<resource>
|
|
<directory>src/main/resources</directory>
|
|
<includes>
|
|
<include>**/*.*</include>
|
|
</includes>
|
|
</resource>
|
|
</resources>
|
|
<plugins>
|
|
<!--aspectj-->
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>aspectj-maven-plugin</artifactId>
|
|
<version>1.14.0</version>
|
|
<executions>
|
|
<execution>
|
|
<phase>process-classes</phase>
|
|
<goals>
|
|
<goal>compile</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
<configuration>
|
|
<forceAjcCompile>true</forceAjcCompile>
|
|
<sources/>
|
|
<weaveDirectories>
|
|
<weaveDirectory>${project.build.directory}/classes</weaveDirectory>
|
|
</weaveDirectories>
|
|
<source>${maven.compiler.source}</source>
|
|
<target>${maven.compiler.target}</target>
|
|
<complianceLevel>${maven.compiler.target}</complianceLevel>
|
|
</configuration>
|
|
</plugin>
|
|
<!--jcup-->
|
|
<plugin>
|
|
<groupId>net.sourceforge.czt.dev</groupId>
|
|
<artifactId>cup-maven-plugin</artifactId>
|
|
<version>1.6-cdh</version>
|
|
<executions>
|
|
<execution>
|
|
<id>cup</id>
|
|
<phase>generate-sources</phase>
|
|
<goals>
|
|
<goal>generate</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
<configuration>
|
|
<!--<cupDefinition>${doris.home}/gensrc/parser/sql_parser.cup</cupDefinition>-->
|
|
<className>SqlParser</className>
|
|
<symbolsName>SqlParserSymbols</symbolsName>
|
|
<expectedConflicts>0</expectedConflicts>
|
|
<!--<outputDirectory>src/main/java</outputDirectory>-->
|
|
</configuration>
|
|
</plugin>
|
|
|
|
<!--jflex-->
|
|
<plugin>
|
|
<groupId>de.jflex</groupId>
|
|
<artifactId>maven-jflex-plugin</artifactId>
|
|
<version>1.4.3</version>
|
|
<executions>
|
|
<execution>
|
|
<id>jflex</id>
|
|
<phase>generate-sources</phase>
|
|
<goals>
|
|
<goal>generate</goal>
|
|
</goals>
|
|
<configuration>
|
|
<!-- lexDefinitions -->
|
|
<!--<lexDefinition>${doris.home}/gensrc/parser/sql_scanner.flex</lexDefinition>-->
|
|
<!-- /lexDefinitions -->
|
|
<!--<outputDirectory>src/main/java</outputDirectory>-->
|
|
<backup>false</backup>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<!--antlr-->
|
|
<plugin>
|
|
<groupId>org.antlr</groupId>
|
|
<artifactId>antlr4-maven-plugin</artifactId>
|
|
<version>${antlr4.version}</version>
|
|
<executions>
|
|
<execution>
|
|
<id>antlr</id>
|
|
<goals>
|
|
<goal>antlr4</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
<configuration>
|
|
<visitor>true</visitor>
|
|
<sourceDirectory>src/main/antlr4</sourceDirectory>
|
|
<treatWarningsAsErrors>true</treatWarningsAsErrors>
|
|
</configuration>
|
|
</plugin>
|
|
<!-- jmockit -->
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
<configuration>
|
|
<!-->set larger, eg, 3, to reduce the time or running FE unit tests<-->
|
|
<forkCount>${fe_ut_parallel}</forkCount>
|
|
<!-->not reuse forked jvm, so that each unit test will run in separate jvm. to avoid singleton conflict<-->
|
|
<reuseForks>false</reuseForks>
|
|
<useFile>false</useFile>
|
|
<argLine>
|
|
-javaagent:${settings.localRepository}/org/jmockit/jmockit/${jmockit.version}/jmockit-${jmockit.version}.jar
|
|
</argLine>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-javadoc-plugin</artifactId>
|
|
<configuration>
|
|
<skip>true</skip>
|
|
</configuration>
|
|
</plugin>
|
|
<!-- protobuf -->
|
|
<plugin>
|
|
<groupId>com.github.os72</groupId>
|
|
<artifactId>protoc-jar-maven-plugin</artifactId>
|
|
<version>3.11.4</version>
|
|
<executions>
|
|
<execution>
|
|
<phase>generate-sources</phase>
|
|
<goals>
|
|
<goal>run</goal>
|
|
</goals>
|
|
<configuration>
|
|
<protocCommand>${protoc.command}</protocCommand>
|
|
<!--You can use following protocArtifact instead of protocCommand, so that you don't need to install protobuf tools-->
|
|
<protocArtifact>${protoc.artifact}</protocArtifact>
|
|
<protocVersion>${protobuf.version}</protocVersion>
|
|
<inputDirectories>
|
|
<include>${doris.home}/gensrc/proto</include>
|
|
</inputDirectories>
|
|
<outputTargets>
|
|
<outputTarget>
|
|
<type>java</type>
|
|
</outputTarget>
|
|
<outputTarget>
|
|
<type>grpc-java</type>
|
|
<pluginArtifact>${grpc.java.artifact}</pluginArtifact>
|
|
</outputTarget>
|
|
</outputTargets>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<!-- run make to generate Version and builtin -->
|
|
<!-- also parse the proto for FE -->
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>exec-maven-plugin</artifactId>
|
|
<version>3.1.0</version>
|
|
<executions>
|
|
<execution>
|
|
<id>gensrc</id>
|
|
<phase>generate-sources</phase>
|
|
<goals>
|
|
<goal>exec</goal>
|
|
</goals>
|
|
<configuration>
|
|
<environmentVariables>
|
|
<DORIS_HOME>${doris.home}</DORIS_HOME>
|
|
</environmentVariables>
|
|
<environmentScript>${doris.home}/env.sh</environmentScript>
|
|
<executable>make</executable>
|
|
<arguments>
|
|
<argument>-C</argument>
|
|
<argument>${doris.home}/gensrc/script</argument>
|
|
</arguments>
|
|
<skip>${skip.plugin}</skip>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>doc</id>
|
|
<phase>process-classes</phase>
|
|
<goals>
|
|
<goal>java</goal>
|
|
</goals>
|
|
<configuration>
|
|
<mainClass>org.apache.doris.common.util.DocGenerator</mainClass>
|
|
<arguments>
|
|
<argument>${doris.home}/docs/en/docs/admin-manual/config/fe-config-template.md</argument>
|
|
<argument>${doris.home}/docs/zh-CN/docs/admin-manual/config/fe-config-template.md</argument>
|
|
<argument>${doris.home}/docs/en/docs/admin-manual/config/fe-config.md</argument>
|
|
<argument>${doris.home}/docs/zh-CN/docs/admin-manual/config/fe-config.md</argument>
|
|
<argument>${doris.home}/docs/en/docs/advanced/variables-template.md</argument>
|
|
<argument>${doris.home}/docs/zh-CN/docs/advanced/variables-template.md</argument>
|
|
<argument>${doris.home}/docs/en/docs/advanced/variables.md</argument>
|
|
<argument>${doris.home}/docs/zh-CN/docs/advanced/variables.md</argument>
|
|
</arguments>
|
|
<skip>${skip.doc}</skip>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
|
|
<!-- annotation processor -->
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-compiler-plugin</artifactId>
|
|
<executions>
|
|
<!-- first: compile annotation and annotation processor -->
|
|
<execution>
|
|
<id>compile-describable-processor</id>
|
|
<phase>generate-sources</phase>
|
|
<goals>
|
|
<goal>compile</goal>
|
|
</goals>
|
|
<configuration>
|
|
<proc>none</proc>
|
|
<includes>
|
|
<include>org/apache/doris/nereids/pattern/generator/PatternDescribable.java</include>
|
|
<include>org/apache/doris/nereids/pattern/generator/PatternDescribableProcessor.java</include>
|
|
</includes>
|
|
</configuration>
|
|
</execution>
|
|
|
|
<!-- second: generate patterns -->
|
|
<execution>
|
|
<id>generate-patterns</id>
|
|
<phase>generate-sources</phase>
|
|
<goals>
|
|
<goal>compile</goal>
|
|
</goals>
|
|
<configuration>
|
|
<proc>only</proc>
|
|
<compilerArgs>
|
|
<arg>-AplanPath=${basedir}/src/main/java/org/apache/doris/nereids</arg>
|
|
</compilerArgs>
|
|
<includes>
|
|
<include>org/apache/doris/nereids/pattern/generator/PatternDescribableProcessPoint.java</include>
|
|
</includes>
|
|
<annotationProcessors>
|
|
<annotationProcessor>org.apache.doris.nereids.pattern.generator.PatternDescribableProcessor</annotationProcessor>
|
|
</annotationProcessors>
|
|
</configuration>
|
|
</execution>
|
|
|
|
<!-- third: default compile -->
|
|
<execution>
|
|
<id>default-compile</id>
|
|
<phase>compile</phase>
|
|
<goals>
|
|
<goal>compile</goal>
|
|
</goals>
|
|
<configuration>
|
|
<excludes>
|
|
<exclude>org/apache/doris/nereids/pattern/generator/**</exclude>
|
|
</excludes>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<!-- add gensrc java build src dir -->
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>build-helper-maven-plugin</artifactId>
|
|
<version>3.2.0</version>
|
|
<executions>
|
|
<execution>
|
|
<id>add-source</id>
|
|
<phase>generate-sources</phase>
|
|
<goals>
|
|
<goal>add-source</goal>
|
|
</goals>
|
|
<configuration>
|
|
<sources>
|
|
<!-- add arbitrary num of src dirs here -->
|
|
<source>${basedir}/target/generated-sources/build/</source>
|
|
<source>${basedir}/target/generated-sources/</source>
|
|
</sources>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<!-- copy all dependency libs to target lib dir -->
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-dependency-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>copy-dependencies</id>
|
|
<phase>package</phase>
|
|
<goals>
|
|
<goal>copy-dependencies</goal>
|
|
</goals>
|
|
<configuration>
|
|
<outputDirectory>${project.build.directory}/lib</outputDirectory>
|
|
<overWriteReleases>false</overWriteReleases>
|
|
<overWriteSnapshots>false</overWriteSnapshots>
|
|
<overWriteIfNewer>true</overWriteIfNewer>
|
|
<includeScope>runtime</includeScope>
|
|
<skip>${skip.plugin}</skip>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>cobertura-maven-plugin</artifactId>
|
|
<version>2.7</version>
|
|
<configuration>
|
|
<check>
|
|
<maxmem>1024m</maxmem>
|
|
</check>
|
|
</configuration>
|
|
</plugin>
|
|
<!-- clean fe/target dir before building -->
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-clean-plugin</artifactId>
|
|
<version>3.1.0</version>
|
|
<configuration>
|
|
<skip>${skip.clean}</skip>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<id>auto-clean</id>
|
|
<phase>initialize</phase>
|
|
<goals>
|
|
<goal>clean</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</project>
|