apache / arrow

Apache Arrow is a multi-language toolbox for accelerated data interchange and in-memory processing
https://arrow.apache.org/
Apache License 2.0
14.31k stars 3.48k forks source link

[Java] maven add the flight-core failed #35759

Closed Cai-Yao closed 1 year ago

Cai-Yao commented 1 year ago

Describe the usage question you have. Please include as many useful details as possible.

I add these in the pom.xml

<dependencies>
      <dependency>
          <groupId>org.apache.arrow</groupId>
          <artifactId>flight-core</artifactId>
          <version>${arrow.version}</version>
      </dependency>
  </dependencies>

In building, it will occur the problem

Exception in thread "main" java.lang.StackOverflowError
    at org.eclipse.aether.util.graph.visitor.PathRecordingDependencyVisitor.visitEnter(PathRecordingDependencyVisitor.java:102)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:343)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
    at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)

What is wrong in my setting?

Component(s)

Java

lidavidm commented 1 year ago

What version of maven, what is the value of ${arrow.version}, and is it possible to share the full pom.xml?

Cai-Yao commented 1 year ago

maven is 4.0.0, arrow.version is 9.0.0 This is the full pom.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>
        <arrow.version>9.0.0</arrow.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>
            <version>0.43.3-public</version>
        </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-http-trace</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>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>

        <!-- https://mvnrepository.com/artifact/org.apache.ranger/ranger-plugins-common -->
        <dependency>
            <groupId>org.apache.ranger</groupId>
            <artifactId>ranger-plugins-common</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.arrow</groupId>
            <artifactId>arrow-memory-netty</artifactId>
            <version>${arrow.version}</version>
        </dependency>

        <!-- <dependency>
            <groupId>org.apache.arrow</groupId>
            <artifactId>flight-core</artifactId>
            <scope>system</scope>
            <systemPath>${pom.basedir}/libs/flight-core-9.0.0.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>org.apache.arrow</groupId>
            <artifactId>flight-sql</artifactId>
            <scope>system</scope>
            <systemPath>${pom.basedir}/libs/flight-sql-9.0.0.jar</systemPath>
        </dependency> -->

        <dependency>
            <groupId>org.apache.arrow</groupId>
            <artifactId>flight-core</artifactId>
            <version>${arrow.version}</version>
        </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>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <includeSystemScope>true</includeSystemScope>
                </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>
        <extensions>
            <extension>
                <groupId>kr.motd.maven</groupId>
                <artifactId>os-maven-plugin</artifactId>
                <version>1.7.0</version>
            </extension>
        </extensions>
    </build>
</project>
lidavidm commented 1 year ago

Thanks.

I grabbed a copy of Apache Doris and put your pom.xml in place of fe/fe-core/pom.xml.

I can't fully build for other reasons, but at least maven gets past package resolution and gets to compilation of fe-core, so I'm not able to reproduce here.

Do you happen to have a branch to look at?

(Also, it looks like Doris uses very old versions of Arrow? 9.0.0 is somewhat recent but I saw 7.0.0 in the build as well.)

lidavidm commented 1 year ago

CC @davisusanibar are you able to reproduce?

Cai-Yao commented 1 year ago

Thanks.

I grabbed a copy of Apache Doris and put your pom.xml in place of fe/fe-core/pom.xml.

I can't fully build for other reasons, but at least maven gets past package resolution and gets to compilation of fe-core, so I'm not able to reproduce here.

Do you happen to have a branch to look at?

(Also, it looks like Doris uses very old versions of Arrow? 9.0.0 is somewhat recent but I saw 7.0.0 in the build as well.)

I use the doris commit id : 8fd1eb0d1ebe85dae0424acdf34f936bfa2a6af0. I want to implement a flight sql server to support python client, so I use the flight-core jar. But I add pom.xml, the building is error. Is there a problem with the way I write pom.xml if I want to use org.apache.arrow.flight.FlightServer. I add jar in local is succeed, like this

<dependency>
      <groupId>org.apache.arrow</groupId>
      <artifactId>flight-core</artifactId>
      <scope>system</scope>
      <systemPath>${pom.basedir}/libs/flight-core-9.0.0.jar</systemPath>
  </dependency>
lidavidm commented 1 year ago

I don't think there is anything wrong with how you are doing it, I just wasn't able to replicate it earlier. I will try again when I get a chance.

lidavidm commented 1 year ago

Thanks! I can reproduce now. Let me see...

lidavidm commented 1 year ago

It seems something like https://issues.apache.org/jira/browse/MNG-6737

Doris appears to pin gRPC 1.30.0 in this commit but Flight uses 1.47.0. If I change Doris's pin to 1.47.0 it appears to get past dependency resolution. (Compilation fails but I'm not running the full build script so I probably have something else wrong.)

lidavidm commented 1 year ago

@Cai-Yao it sounds like from the other issue that you got past this problem?

Cai-Yao commented 1 year ago

@Cai-Yao it sounds like from the other issue that you got past this problem?

Thanks for your reply, I still haven't located the cause of this problem and I am currently solving it by:

<dependency>
    <groupId>org.apache.arrow</groupId>
    <artifactId>flight-core</artifactId>
    <scope>system</scope>
    <systemPath>${pom.basedir}/libs/flight-core-9.0.0.jar</systemPath>
</dependency>

I'm not very good at JAVA and will ask the Doris guys for help later to see if it's a problem with some dependencies.

xinyiZzz commented 1 year ago

The Maven dependency issue introduced by Apache Doris into Arrow Flight has been resolved. Here: https://github.com/apache/doris/pull/24314

This issue can be closed, thanks @lidavidm

lidavidm commented 1 year ago

Great, glad to hear it!