<?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/maven-v4_0_0.xsd"> | |
<modelVersion>4.0.0</modelVersion> | |
<artifactId>druid-spark</artifactId> | |
<name>druid-spark</name> | |
<description>Spark connectors for reading data from and writing data to Druid clusters</description> | |
<parent> | |
<groupId>org.apache.druid</groupId> | |
<artifactId>druid</artifactId> | |
<version>0.22.0-SNAPSHOT</version> | |
<relativePath>../pom.xml</relativePath> | |
</parent> | |
<properties> | |
<scala.version>${scala.major.version}.15</scala.version> | |
<scala.major.version>2.12</scala.major.version> | |
<spark.version>2.4.8</spark.version> | |
<!-- These two properties allow -Dcheckstyle.skip to suppress scalastyle checks as well --> | |
<checkstyle.skip>false</checkstyle.skip> | |
<scalastyle.skip>${checkstyle.skip}</scalastyle.skip> | |
</properties> | |
<dependencyManagement> | |
<dependencies> | |
<dependency> | |
<groupId>io.dropwizard.metrics</groupId> | |
<artifactId>metrics-core</artifactId> | |
<version>4.0.2</version> | |
</dependency> | |
</dependencies> | |
</dependencyManagement> | |
<dependencies> | |
<dependency> | |
<groupId>org.apache.druid</groupId> | |
<artifactId>druid-core</artifactId> | |
<version>${project.parent.version}</version> | |
<exclusions> | |
<exclusion> | |
<groupId>com.jayway.jsonpath</groupId> | |
<artifactId>json-path</artifactId> | |
</exclusion> | |
<exclusion> | |
<groupId>com.opencsv</groupId> | |
<artifactId>opencsv</artifactId> | |
</exclusion> | |
<exclusion> | |
<groupId>io.airlift</groupId> | |
<artifactId>airline</artifactId> | |
</exclusion> | |
<exclusion> | |
<groupId>io.netty</groupId> | |
<artifactId>*</artifactId> | |
</exclusion> | |
<exclusion> | |
<groupId>io.timeandspace</groupId> | |
<artifactId>cron-scheduler</artifactId> | |
</exclusion> | |
<exclusion> | |
<groupId>net.thisptr</groupId> | |
<artifactId>jackson-jq</artifactId> | |
</exclusion> | |
<exclusion> | |
<groupId>org.apache.druid</groupId> | |
<artifactId>druid-console</artifactId> | |
</exclusion> | |
<exclusion> | |
<groupId>org.gridkit.lab</groupId> | |
<artifactId>jvm-attach-api</artifactId> | |
</exclusion> | |
<exclusion> | |
<groupId>org.hyperic</groupId> | |
<artifactId>sigar</artifactId> | |
</exclusion> | |
<exclusion> | |
<groupId>org.jboss.logging</groupId> | |
<artifactId>jboss-logging</artifactId> | |
</exclusion> | |
<exclusion> | |
<groupId>org.mozilla</groupId> | |
<artifactId>rhino</artifactId> | |
</exclusion> | |
<exclusion> | |
<groupId>org.skife.config</groupId> | |
<artifactId>config-magic</artifactId> | |
</exclusion> | |
<exclusion> | |
<groupId>org.slf4j</groupId> | |
<artifactId>*</artifactId> | |
</exclusion> | |
</exclusions> | |
</dependency> | |
<dependency> | |
<groupId>org.apache.druid</groupId> | |
<artifactId>druid-server</artifactId> | |
<version>${project.parent.version}</version> | |
<exclusions> | |
<exclusion> | |
<groupId>*</groupId> | |
<artifactId>*</artifactId> | |
</exclusion> | |
</exclusions> | |
</dependency> | |
<dependency> | |
<groupId>org.apache.druid</groupId> | |
<artifactId>druid-processing</artifactId> | |
<version>${project.parent.version}</version> | |
<exclusions> | |
<exclusion> | |
<groupId>com.ibm.icu</groupId> | |
<artifactId>icu4j</artifactId> | |
</exclusion> | |
<exclusion> | |
<groupId>io.netty</groupId> | |
<artifactId>*</artifactId> | |
</exclusion> | |
<exclusion> | |
<groupId>org.mozilla</groupId> | |
<artifactId>rhino</artifactId> | |
</exclusion> | |
<exclusion> | |
<groupId>org.skife.config</groupId> | |
<artifactId>config-magic</artifactId> | |
</exclusion> | |
</exclusions> | |
</dependency> | |
<dependency> | |
<groupId>org.apache.druid</groupId> | |
<artifactId>druid-indexing-service</artifactId> | |
<version>${project.parent.version}</version> | |
</dependency> | |
<!-- Extensions included since we won't be running in a Druid cluster and can't use injection --> | |
<dependency> | |
<groupId>org.apache.druid.extensions</groupId> | |
<artifactId>druid-datasketches</artifactId> | |
<version>${project.parent.version}</version> | |
</dependency> | |
<dependency> | |
<groupId>org.apache.datasketches</groupId> | |
<artifactId>datasketches-java</artifactId> | |
<version>${datasketches.version}</version> | |
</dependency> | |
<dependency> | |
<groupId>org.apache.druid.extensions</groupId> | |
<artifactId>druid-histogram</artifactId> | |
<version>${project.parent.version}</version> | |
</dependency> | |
<dependency> | |
<groupId>org.apache.druid.extensions</groupId> | |
<artifactId>druid-stats</artifactId> | |
<version>${project.parent.version}</version> | |
</dependency> | |
<dependency> | |
<groupId>org.apache.druid.extensions</groupId> | |
<artifactId>mysql-metadata-storage</artifactId> | |
<version>${project.parent.version}</version> | |
</dependency> | |
<dependency> | |
<groupId>org.apache.druid.extensions</groupId> | |
<artifactId>postgresql-metadata-storage</artifactId> | |
<version>${project.parent.version}</version> | |
</dependency> | |
<!-- | |
Excluding transitive dependencies from deep storage extensions to keep dependency size manangeable. Users | |
should provide the appropriate jars for their deep storage on their Spark clusters or depend on them directly | |
in their code. | |
--> | |
<dependency> | |
<groupId>org.apache.druid</groupId> | |
<artifactId>druid-aws-common</artifactId> | |
<version>${project.parent.version}</version> | |
<exclusions> | |
<exclusion> | |
<groupId>*</groupId> | |
<artifactId>*</artifactId> | |
</exclusion> | |
</exclusions> | |
</dependency> | |
<dependency> | |
<groupId>org.apache.druid</groupId> | |
<artifactId>druid-gcp-common</artifactId> | |
<version>${project.parent.version}</version> | |
<exclusions> | |
<exclusion> | |
<groupId>*</groupId> | |
<artifactId>*</artifactId> | |
</exclusion> | |
</exclusions> | |
</dependency> | |
<dependency> | |
<groupId>org.apache.druid.extensions</groupId> | |
<artifactId>druid-azure-extensions</artifactId> | |
<version>${project.parent.version}</version> | |
<exclusions> | |
<exclusion> | |
<groupId>*</groupId> | |
<artifactId>*</artifactId> | |
</exclusion> | |
</exclusions> | |
</dependency> | |
<dependency> | |
<groupId>org.apache.druid.extensions</groupId> | |
<artifactId>druid-google-extensions</artifactId> | |
<version>${project.parent.version}</version> | |
<exclusions> | |
<exclusion> | |
<groupId>*</groupId> | |
<artifactId>*</artifactId> | |
</exclusion> | |
</exclusions> | |
</dependency> | |
<dependency> | |
<groupId>org.apache.druid.extensions</groupId> | |
<artifactId>druid-hdfs-storage</artifactId> | |
<version>${project.parent.version}</version> | |
<exclusions> | |
<exclusion> | |
<groupId>*</groupId> | |
<artifactId>*</artifactId> | |
</exclusion> | |
</exclusions> | |
</dependency> | |
<dependency> | |
<groupId>org.apache.druid.extensions</groupId> | |
<artifactId>druid-s3-extensions</artifactId> | |
<version>${project.parent.version}</version> | |
<exclusions> | |
<exclusion> | |
<groupId>*</groupId> | |
<artifactId>*</artifactId> | |
</exclusion> | |
</exclusions> | |
</dependency> | |
<!-- Deep storage direct APIs --> | |
<dependency> | |
<groupId>com.microsoft.azure</groupId> | |
<artifactId>azure-storage</artifactId> | |
<version>8.6.0</version> | |
<scope>provided</scope> | |
<exclusions> | |
<exclusion> | |
<groupId>com.fasterxml.jackson.core</groupId> | |
<artifactId>jackson-core</artifactId> | |
</exclusion> | |
<exclusion> | |
<groupId>com.google.guava</groupId> | |
<artifactId>guava</artifactId> | |
</exclusion> | |
<exclusion> | |
<groupId>org.apache.commons</groupId> | |
<artifactId>commons-lang3</artifactId> | |
</exclusion> | |
<exclusion> | |
<groupId>org.slf4j</groupId> | |
<artifactId>slf4j-api</artifactId> | |
</exclusion> | |
</exclusions> | |
</dependency> | |
<dependency> | |
<groupId>com.google.api-client</groupId> | |
<artifactId>google-api-client</artifactId> | |
<version>${com.google.apis.client.version}</version> | |
<scope>provided</scope> | |
</dependency> | |
<dependency> | |
<groupId>com.google.http-client</groupId> | |
<artifactId>google-http-client-jackson2</artifactId> | |
<version>${com.google.apis.client.version}</version> | |
<scope>provided</scope> | |
</dependency> | |
<dependency> | |
<groupId>com.google.apis</groupId> | |
<artifactId>google-api-services-storage</artifactId> | |
<version>${com.google.apis.storage.version}</version> | |
<scope>provided</scope> | |
<exclusions> | |
<exclusion> | |
<groupId>com.google.api-client</groupId> | |
<artifactId>google-api-client</artifactId> | |
</exclusion> | |
</exclusions> | |
</dependency> | |
<dependency> | |
<groupId>com.amazonaws</groupId> | |
<artifactId>aws-java-sdk-core</artifactId> | |
<scope>provided</scope> | |
</dependency> | |
<dependency> | |
<groupId>com.amazonaws</groupId> | |
<artifactId>aws-java-sdk-s3</artifactId> | |
<scope>provided</scope> | |
</dependency> | |
<dependency> | |
<groupId>com.amazonaws</groupId> | |
<artifactId>aws-java-sdk-ec2</artifactId> | |
<scope>provided</scope> | |
</dependency> | |
<dependency> | |
<groupId>com.fasterxml.jackson.module</groupId> | |
<artifactId>jackson-module-scala_2.12</artifactId> | |
<version>2.10.5</version> | |
</dependency> | |
<dependency> | |
<groupId>commons-io</groupId> | |
<artifactId>commons-io</artifactId> | |
<scope>provided</scope> | |
</dependency> | |
<dependency> | |
<groupId>com.google.code.findbugs</groupId> | |
<artifactId>jsr305</artifactId> | |
<scope>provided</scope> | |
</dependency> | |
<dependency> | |
<groupId>com.google.guava</groupId> | |
<artifactId>guava</artifactId> | |
</dependency> | |
<dependency> | |
<groupId>com.fasterxml.jackson.core</groupId> | |
<artifactId>jackson-annotations</artifactId> | |
<scope>provided</scope> | |
</dependency> | |
<dependency> | |
<groupId>com.fasterxml.jackson.core</groupId> | |
<artifactId>jackson-databind</artifactId> | |
<scope>provided</scope> | |
</dependency> | |
<dependency> | |
<groupId>com.fasterxml.jackson.core</groupId> | |
<artifactId>jackson-core</artifactId> | |
<scope>provided</scope> | |
</dependency> | |
<dependency> | |
<groupId>com.google.http-client</groupId> | |
<artifactId>google-http-client</artifactId> | |
<scope>provided</scope> | |
</dependency> | |
<dependency> | |
<groupId>commons-lang</groupId> | |
<artifactId>commons-lang</artifactId> | |
<scope>provided</scope> | |
</dependency> | |
<dependency> | |
<groupId>javax.validation</groupId> | |
<artifactId>validation-api</artifactId> | |
<scope>provided</scope> | |
</dependency> | |
<dependency> | |
<groupId>joda-time</groupId> | |
<artifactId>joda-time</artifactId> | |
<scope>provided</scope> | |
</dependency> | |
<dependency> | |
<groupId>io.netty</groupId> | |
<artifactId>netty</artifactId> | |
<scope>provided</scope> | |
</dependency> | |
<dependency> | |
<groupId>org.apache.commons</groupId> | |
<artifactId>commons-dbcp2</artifactId> | |
<scope>provided</scope> | |
</dependency> | |
<dependency> | |
<groupId>org.apache.hadoop</groupId> | |
<artifactId>hadoop-common</artifactId> | |
<exclusions> | |
<exclusion> | |
<groupId>log4j</groupId> | |
<artifactId>log4j</artifactId> | |
</exclusion> | |
</exclusions> | |
<scope>provided</scope> | |
</dependency> | |
<dependency> | |
<groupId>org.jdbi</groupId> | |
<artifactId>jdbi</artifactId> | |
</dependency> | |
<dependency> | |
<groupId>org.slf4j</groupId> | |
<artifactId>slf4j-api</artifactId> | |
<scope>provided</scope> | |
</dependency> | |
<!-- Spark --> | |
<dependency> | |
<groupId>org.apache.spark</groupId> | |
<artifactId>spark-core_${scala.major.version}</artifactId> | |
<version>${spark.version}</version> | |
<scope>provided</scope> | |
<exclusions> | |
<exclusion> | |
<groupId>com.fasterxml.jackson</groupId> | |
<artifactId>*</artifactId> | |
</exclusion> | |
<exclusion> | |
<groupId>com.fasterxml.jackson.core</groupId> | |
<artifactId>*</artifactId> | |
</exclusion> | |
<exclusion> | |
<groupId>org.slf4j</groupId> | |
<artifactId>slf4j-api</artifactId> | |
</exclusion> | |
<exclusion> | |
<groupId>log4j</groupId> | |
<artifactId>log4j</artifactId> | |
</exclusion> | |
</exclusions> | |
</dependency> | |
<dependency> | |
<groupId>org.apache.spark</groupId> | |
<artifactId>spark-sql_${scala.major.version}</artifactId> | |
<version>${spark.version}</version> | |
<scope>provided</scope> | |
</dependency> | |
<dependency> | |
<groupId>org.apache.spark</groupId> | |
<artifactId>spark-unsafe_${scala.major.version}</artifactId> | |
<version>${spark.version}</version> | |
<scope>provided</scope> | |
</dependency> | |
<dependency> | |
<groupId>org.apache.spark</groupId> | |
<artifactId>spark-catalyst_${scala.major.version}</artifactId> | |
<version>${spark.version}</version> | |
<scope>provided</scope> | |
</dependency> | |
<dependency> | |
<groupId>org.scala-lang</groupId> | |
<artifactId>scala-library</artifactId> | |
<version>${scala.version}</version> | |
<scope>provided</scope> | |
</dependency> | |
<dependency> | |
<groupId>org.scala-lang</groupId> | |
<artifactId>scala-reflect</artifactId> | |
<version>${scala.version}</version> | |
<scope>provided</scope> | |
</dependency> | |
<dependency> | |
<groupId>org.scala-lang</groupId> | |
<artifactId>scalap</artifactId> | |
<version>${scala.version}</version> | |
<scope>provided</scope> | |
</dependency> | |
<!-- Tests --> | |
<dependency> | |
<groupId>org.apache.druid</groupId> | |
<artifactId>druid-core</artifactId> | |
<version>${project.parent.version}</version> | |
<exclusions> | |
<exclusion> | |
<groupId>org.apache.logging.log4j</groupId> | |
<artifactId>*</artifactId> | |
</exclusion> | |
<exclusion> | |
<groupId>org.hyperic</groupId> | |
<artifactId>sigar</artifactId> | |
</exclusion> | |
<exclusion> | |
<groupId>org.slf4j</groupId> | |
<artifactId>*</artifactId> | |
</exclusion> | |
</exclusions> | |
<type>test-jar</type> | |
<scope>test</scope> | |
</dependency> | |
<dependency> | |
<groupId>org.apache.druid</groupId> | |
<artifactId>druid-processing</artifactId> | |
<version>${project.parent.version}</version> | |
<type>test-jar</type> | |
<scope>test</scope> | |
</dependency> | |
<dependency> | |
<groupId>org.apache.derby</groupId> | |
<artifactId>derby</artifactId> | |
<scope>test</scope> | |
</dependency> | |
<dependency> | |
<groupId>org.scalatest</groupId> | |
<artifactId>scalatest_${scala.major.version}</artifactId> | |
<version>3.1.1</version> | |
<scope>test</scope> | |
</dependency> | |
<dependency> | |
<groupId>org.scalactic</groupId> | |
<artifactId>scalactic_${scala.major.version}</artifactId> | |
<version>3.1.1</version> | |
<scope>test</scope> | |
</dependency> | |
<dependency> | |
<groupId>junit</groupId> | |
<artifactId>junit</artifactId> | |
<scope>test</scope> | |
</dependency> | |
<dependency> | |
<groupId>org.hamcrest</groupId> | |
<artifactId>hamcrest-core</artifactId> | |
<scope>test</scope> | |
</dependency> | |
</dependencies> | |
<build> | |
<plugins> | |
<!-- scala build --> | |
<plugin> | |
<groupId>net.alchim31.maven</groupId> | |
<artifactId>scala-maven-plugin</artifactId> | |
<version>3.2.2</version> | |
<executions> | |
<execution> | |
<id>eclipse-add-source</id> | |
<goals> | |
<goal>add-source</goal> | |
</goals> | |
</execution> | |
<execution> | |
<id>scala-compile-first</id> | |
<phase>process-resources</phase> | |
<goals> | |
<goal>compile</goal> | |
</goals> | |
</execution> | |
<execution> | |
<id>scala-test-compile-first</id> | |
<phase>process-test-resources</phase> | |
<goals> | |
<goal>testCompile</goal> | |
</goals> | |
</execution> | |
<execution> | |
<id>attach-scaladocs</id> | |
<phase>verify</phase> | |
<goals> | |
<goal>doc-jar</goal> | |
</goals> | |
</execution> | |
</executions> | |
<configuration> | |
<scalaVersion>${scala.version}</scalaVersion> | |
<args> | |
<arg>-unchecked</arg> | |
<arg>-deprecation</arg> | |
<arg>-feature</arg> | |
</args> | |
<jvmArgs> | |
<jvmArg>-Xms1024m</jvmArg> | |
<jvmArg>-Xmx1024m</jvmArg> | |
</jvmArgs> | |
<javacArgs> | |
<javacArg>-source</javacArg> | |
<javacArg>${java.version}</javacArg> | |
<javacArg>-target</javacArg> | |
<javacArg>${java.version}</javacArg> | |
<javacArg>-Xlint:all,-serial,-path</javacArg> | |
</javacArgs> | |
</configuration> | |
</plugin> | |
<!-- disable surefire --> | |
<plugin> | |
<groupId>org.apache.maven.plugins</groupId> | |
<artifactId>maven-surefire-plugin</artifactId> | |
<configuration> | |
<skipTests>true</skipTests> | |
</configuration> | |
</plugin> | |
<!-- enable scalatest --> | |
<plugin> | |
<groupId>org.scalatest</groupId> | |
<artifactId>scalatest-maven-plugin</artifactId> | |
<version>1.0</version> | |
<configuration> | |
<reportsDirectory>${project.build.directory}/surefire-reports</reportsDirectory> | |
<junitxml>.</junitxml> | |
<parallel>false</parallel> | |
<argLine>-Dderby.stream.error.field=org.apache.commons.io.output.NullOutputStream.NULL_OUTPUT_STREAM\ | |
-Dlog4j.configuration=${project.basedir}/test/resources/log4j2.xml | |
</argLine> | |
</configuration> | |
<executions> | |
<execution> | |
<id>test</id> | |
<goals> | |
<goal>test</goal> | |
</goals> | |
</execution> | |
</executions> | |
</plugin> | |
<plugin> | |
<groupId>org.scalastyle</groupId> | |
<artifactId>scalastyle-maven-plugin</artifactId> | |
<version>1.0.0</version> | |
<configuration> | |
<verbose>false</verbose> | |
<failOnViolation>true</failOnViolation> | |
<includeTestSourceDirectory>true</includeTestSourceDirectory> | |
<failOnWarning>false</failOnWarning> | |
<sourceDirectory>${project.basedir}/src/main/scala</sourceDirectory> | |
<testSourceDirectory>${project.basedir}/src/test/scala</testSourceDirectory> | |
<configLocation>${project.basedir}/../codestyle/scalastyle_config.xml</configLocation> | |
</configuration> | |
<executions> | |
<execution> | |
<id>validate</id> | |
<phase>validate</phase> | |
<goals> | |
<goal>check</goal> | |
</goals> | |
</execution> | |
</executions> | |
</plugin> | |
</plugins> | |
</build> | |
</project> |