sdl-parent
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency> <groupId>io.smartdatalake</groupId> <artifactId>sdl-parent</artifactId> <version>2.8.0</version> </dependency>
<!-- ~ Smart Data Lake - Build your data lake the smart way. ~ ~ Copyright © 2019-2020 ELCA Informatique SA (<https://www.elca.ch>) ~ ~ This program is free software: you can redistribute it and/or modify ~ it under the terms of the GNU General Public License as published by ~ the Free Software Foundation, either version 3 of the License, or ~ (at your option) any later version. ~ ~ This program is distributed in the hope that it will be useful, ~ but WITHOUT ANY WARRANTY; without even the implied warranty of ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ~ GNU General Public License for more details. ~ ~ You should have received a copy of the GNU General Public License ~ along with this program. If not, see <http://www.gnu.org/licenses/>. --> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>io.smartdatalake</groupId> <artifactId>sdl-parent</artifactId> <version>2.8.0</version> <packaging>pom</packaging> <modules> <module>sdl-core</module> <module>sdl-kafka</module> <module>sdl-splunk</module> <module>sdl-jms</module> <module>sdl-deltalake</module> <module>sdl-iceberg</module> <module>sdl-snowflake</module> <module>sdl-azure</module> <module>sdl-lang</module> </modules> <licenses> <license> <name>GNU General Public License (GPL) version 3</name> <url>https://www.gnu.org/licenses/gpl-3.0.html</url> </license> </licenses> <!-- Used for license header by maven-license-plugin --> <name>Smart Data Lake</name> <description>Build your data lake the smart way.</description> <url>http://www.smartdatalake.io</url> <inceptionYear>2019</inceptionYear> <organization> <name>ELCA Informatique SA</name> <url>https://www.elca.ch</url> </organization> <developers> <developer> <name>Smart Data Lake</name> <email>smartdatalake@elca.ch</email> <organization>ELCA Informatik AG</organization> <organizationUrl>http://www.elca.ch</organizationUrl> </developer> </developers> <profiles> <profile> <id>fat-jar</id> <properties> <scala.deps.scope>provided</scala.deps.scope> <spark.deps.scope>provided</spark.deps.scope> <hadoop.deps.scope>provided</hadoop.deps.scope> <hive.deps.scope>provided</hive.deps.scope> <hive.storage.scope>provided</hive.storage.scope> <hive.common.scope>provided</hive.common.scope> <hive.llap.scope>provided</hive.llap.scope> <hive.serde.scope>provided</hive.serde.scope> <hive.shims.scope>provided</hive.shims.scope> <orc.deps.scope>provided</orc.deps.scope> <parquet.deps.scope>provided</parquet.deps.scope> <jetty.deps.scope>provided</jetty.deps.scope> </properties> <build> <plugins> <!-- Builds executable fat-jar that includes all dependencies --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> </plugin> </plugins> </build> </profile> <profile> <id>fat-jar-with-spark</id> <build> <plugins> <!-- Builds executable fat-jar that includes all dependencies --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> </plugin> </plugins> </build> </profile> <profile> <id>copy-libs</id> <properties> <scala.deps.scope>provided</scala.deps.scope> <spark.deps.scope>provided</spark.deps.scope> <hadoop.deps.scope>provided</hadoop.deps.scope> <hive.deps.scope>provided</hive.deps.scope> <hive.storage.scope>provided</hive.storage.scope> <hive.common.scope>provided</hive.common.scope> <hive.llap.scope>provided</hive.llap.scope> <hive.serde.scope>provided</hive.serde.scope> <hive.shims.scope>provided</hive.shims.scope> <orc.deps.scope>provided</orc.deps.scope> <parquet.deps.scope>provided</parquet.deps.scope> <jetty.deps.scope>provided</jetty.deps.scope> </properties> <build> <plugins> <!-- Copy all dependencies to target/lib folder --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>3.1.1</version> <executions> <execution> <id>copy-libs-exec</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <includeScope>runtime</includeScope> <excludeScope>provided</excludeScope> <outputDirectory>${project.build.directory}/lib</outputDirectory> <overWriteIfNewer>true</overWriteIfNewer> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>copy-libs-with-spark</id> <build> <plugins> <!-- Copy all dependencies to target/lib folder --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>3.1.1</version> <executions> <execution> <id>copy-libs-with-exec</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <includeScope>runtime</includeScope> <excludeScope>provided</excludeScope> <outputDirectory>${project.build.directory}/lib</outputDirectory> <overWriteIfNewer>true</overWriteIfNewer> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>scala-2.12</id> <activation> <!-- scala 2.12 is default in spark 3.3/3.4 --> <activeByDefault>true</activeByDefault> </activation> <properties> <scala.minor.version>2.12</scala.minor.version> <scala.version>${scala.minor.version}.18</scala.version> <!-- attention, if updating this scoverage-maven-plugin might not work anymore --> </properties> </profile> <profile> <id>scala-2.13</id> <properties> <scala.minor.version>2.13</scala.minor.version> <scala.version>${scala.minor.version}.12</scala.version> <!-- attention, if updating this scoverage-maven-plugin might not work anymore --> </properties> </profile> <profile> <id>test-sonar</id> <build> <plugins> <plugin> <groupId>org.scoverage</groupId> <artifactId>scoverage-maven-plugin</artifactId> <version>${scoverage.plugin.version}</version> <configuration> <scalaVersion>${scala.version}</scalaVersion> <aggregate>true</aggregate> <highlighting>true</highlighting> </configuration> </plugin> </plugins> </build> </profile> <profile> <id>release-sonatype</id> <distributionManagement> <snapshotRepository> <id>ossrh</id> <name>Central Repository OSSRH</name> <url>https://oss.sonatype.org/content/repositories/snapshots</url> </snapshotRepository> <repository> <id>ossrh</id> <name>Central Repository OSSRH</name> <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url> </repository> </distributionManagement> <build> <plugins> <!-- create scala-doc --> <plugin> <groupId>net.alchim31.maven</groupId> <artifactId>scala-maven-plugin</artifactId> <version>4.5.6</version> <executions> <execution> <id>scala-doc</id> <goals> <goal>doc-jar</goal> </goals> <configuration> <args> <arg>-no-link-warnings</arg> </args> </configuration> </execution> </executions> </plugin> <!-- sign artifacts with gpg --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-gpg-plugin</artifactId> <version>3.1.0</version> <executions> <execution> <id>sign-artifacts</id> <phase>verify</phase> <goals> <goal>sign</goal> </goals> <configuration> <!-- Prevent `gpg` from using pinentry programs --> <gpgArguments> <arg>--pinentry-mode</arg> <arg>loopback</arg> </gpgArguments> </configuration> </execution> </executions> </plugin> <!-- deploy to sonatype / maven central --> <plugin> <groupId>org.sonatype.plugins</groupId> <artifactId>nexus-staging-maven-plugin</artifactId> <version>1.6.13</version> <extensions>true</extensions> <configuration> <serverId>ossrh</serverId> <nexusUrl>https://oss.sonatype.org/</nexusUrl> <autoReleaseAfterClose>false</autoReleaseAfterClose> <stagingProgressTimeoutMinutes>30</stagingProgressTimeoutMinutes> </configuration> </plugin> </plugins> </build> </profile> </profiles> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <license.header.file>src/license/gplv3-header.txt</license.header.file> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.release>8</maven.compiler.release> <scala.deps.scope>compile</scala.deps.scope> <spark.deps.scope>compile</spark.deps.scope> <hadoop.deps.scope>compile</hadoop.deps.scope> <hive.deps.scope>compile</hive.deps.scope> <hive.storage.version>2.8.1</hive.storage.version> <hive.storage.scope>compile</hive.storage.scope> <hive.common.scope>compile</hive.common.scope> <hive.llap.scope>compile</hive.llap.scope> <hive.serde.scope>compile</hive.serde.scope> <hive.shims.scope>compile</hive.shims.scope> <orc.deps.scope>compile</orc.deps.scope> <parquet.deps.scope>compile</parquet.deps.scope> <parquet.test.deps.scope>test</parquet.test.deps.scope> <jetty.deps.scope>compile</jetty.deps.scope> <scala.minor.version>2.12</scala.minor.version> <scala.version>${scala.minor.version}.15</scala.version> <spark.version>3.5.5</spark.version> <spark-extensions.version>3.5.2 </spark-extensions.version> <!-- this sdl-specific extensions should match the minor version of property spark.version --> <spark.minor.version>3.5</spark.minor.version> <spark.version331>3.3.1</spark.version331> <!-- some libraries are still only available for spark 3.3, e.g. spark-excel --> <!-- SPARK-PARENT start: properties copied from spark-parent pom version for spark-parent import in dependencyManagement --> <!-- attention - manually adapted are: zookeeper, scala.version, scala.binary.version --> <asm.version>9.5</asm.version> <slf4j.version>2.0.7</slf4j.version> <log4j.version>2.20.0</log4j.version> <!-- make sure to update IsolatedClientLoader whenever this version is changed --> <hadoop.version>3.3.6</hadoop.version> <!-- Protobuf version for building with Hadoop/Yarn dependencies --> <protobuf.hadoopDependency.version>3.23.0</protobuf.hadoopDependency.version> <!-- Actual Protobuf version in Spark modules like Spark Connect, protobuf connector, etc. --> <!-- SPARK-41247: When updating `protobuf.version`, also need to update `protoVersion` in `SparkBuild.scala` --> <protobuf.version>3.23.4</protobuf.version> <protoc-jar-maven-plugin.version>3.11.4</protoc-jar-maven-plugin.version> <yarn.version>${hadoop.version}</yarn.version> <zookeeper.version>3.6.3</zookeeper.version> <curator.version>2.13.0</curator.version> <hive.group>org.apache.hive</hive.group> <hive.classifier>core</hive.classifier> <!-- Version used in Maven Hive dependency --> <hive.version>2.3.9</hive.version> <hive23.version>2.3.9</hive23.version> <!-- Version used for internal directory structure --> <hive.version.short>2.3</hive.version.short> <!-- note that this should be compatible with Kafka brokers version 0.10 and up --> <kafka.version>3.4.1</kafka.version> <!-- After 10.15.1.3, the minimum required version is JDK9 --> <derby.version>10.14.2.0</derby.version> <parquet.version>1.15.0</parquet.version> <orc.version>1.9.1</orc.version> <orc.classifier>shaded-protobuf</orc.classifier> <jetty.version>9.4.52.v20230823</jetty.version> <jakartaservlet.version>4.0.3</jakartaservlet.version> <chill.version>0.10.0</chill.version> <ivy.version>2.5.1</ivy.version> <oro.version>2.0.8</oro.version> <!-- If you changes codahale.metrics.version, you also need to change the link to metrics.dropwizard.io in docs/monitoring.md. --> <codahale.metrics.version>4.2.19</codahale.metrics.version> <!-- Should be consistent with SparkBuild.scala and docs --> <avro.version>1.11.2</avro.version> <aws.kinesis.client.version>1.12.0</aws.kinesis.client.version> <!-- Should be consistent with Kinesis client dependency --> <aws.java.sdk.version>1.11.655</aws.java.sdk.version> <!-- the producer is used in tests --> <aws.kinesis.producer.version>0.12.8</aws.kinesis.producer.version> <gcs-connector.version>hadoop3-2.2.14</gcs-connector.version> <!-- org.apache.httpcomponents/httpclient--> <commons.httpclient.version>4.5.14</commons.httpclient.version> <commons.httpcore.version>4.4.16</commons.httpcore.version> <commons.math3.version>3.6.1</commons.math3.version> <!-- managed up from 3.2.1 for SPARK-11652 --> <commons.collections.version>3.2.2</commons.collections.version> <commons.collections4.version>4.4</commons.collections4.version> <scala.binary.version>${scala.minor.version}</scala.binary.version> <scalatest-maven-plugin.version>2.0.2</scalatest-maven-plugin.version> <versions-maven-plugin.version>2.14.1</versions-maven-plugin.version> <!-- for now, not running scalafmt as part of default verify pipeline --> <scalafmt.skip>true</scalafmt.skip> <scalafmt.validateOnly>true</scalafmt.validateOnly> <scalafmt.changedOnly>true</scalafmt.changedOnly> <codehaus.jackson.version>1.9.13</codehaus.jackson.version> <fasterxml.jackson.version>2.15.2</fasterxml.jackson.version> <fasterxml.jackson.databind.version>2.15.2</fasterxml.jackson.databind.version> <snappy.version>1.1.9.1</snappy.version> <netlib.ludovic.dev.version>3.0.3</netlib.ludovic.dev.version> <commons-codec.version>1.16.0</commons-codec.version> <commons-compress.version>1.23.0</commons-compress.version> <commons-io.version>2.13.0</commons-io.version> <!-- org.apache.commons/commons-lang/--> <commons-lang2.version>2.6</commons-lang2.version> <!-- org.apache.commons/commons-lang3/--> <commons-lang3.version>3.12.0</commons-lang3.version> <!-- org.apache.commons/commons-pool2/--> <commons-pool2.version>2.11.1</commons-pool2.version> <datanucleus-core.version>4.1.17</datanucleus-core.version> <guava.version>30.0-jre</guava.version> <janino.version>3.1.9</janino.version> <jersey.version>2.40</jersey.version> <joda.version>2.12.5</joda.version> <jodd.version>3.5.2</jodd.version> <jsr305.version>3.0.0</jsr305.version> <libthrift.version>0.12.0</libthrift.version> <!-- Please don't upgrade the version to 4.10+, it depends on JDK 11 --> <antlr4.version>4.9.3</antlr4.version> <jpam.version>1.1</jpam.version> <selenium.version>4.9.1</selenium.version> <htmlunit-driver.version>4.9.1</htmlunit-driver.version> <htmlunit.version>2.70.0</htmlunit.version> <maven-antrun.version>3.1.0</maven-antrun.version> <commons-crypto.version>1.1.0</commons-crypto.version> <commons-cli.version>1.5.0</commons-cli.version> <bouncycastle.version>1.70</bouncycastle.version> <tink.version>1.9.0</tink.version> <netty.version>4.1.96.Final</netty.version> <!-- If you are changing Arrow version specification, please check ./python/pyspark/sql/pandas/utils.py, and ./python/setup.py too. --> <arrow.version>12.0.1</arrow.version> <!-- org.fusesource.leveldbjni will be used except on arm64 platform. --> <leveldbjni.group>org.fusesource.leveldbjni</leveldbjni.group> <kubernetes-client.version>6.7.2</kubernetes-client.version> <!-- These default to Hadoop 3.x shaded client/minicluster jars, but since the shaded jars are only available in 3.x, we have to switch to non-shaded Hadoop client jars when the active profile is hadoop-2.7. To make the above work, in the hadoop-2.7 profile section we bind hadoop-client-api to hadoop-client and hadoop-client-runtime to hadoop-yarn-api, which is a dependency of the former. This effectively moves the hadoop-yarn-api to the same level as hadoop-client, but should be fine since both dependencies are required. We cannot use hadoop-client for both of these because the maven enforcer plugin bans duplicate dependencies. We still leave hadoop-client-minicluster to use hadoop-client because it is of test scope, and is only used by spark-yarn module. To avoid the duplicate dependency issue we only declare the dependency when we're using hadoop-3.2 profile, in resource-managers/yarn/pom.xml. Please check SPARK-36835 for more details. --> <hadoop-client-api.artifact>hadoop-client-api</hadoop-client-api.artifact> <hadoop-client-runtime.artifact>hadoop-client-runtime</hadoop-client-runtime.artifact> <hadoop-client-minicluster.artifact>hadoop-client-minicluster</hadoop-client-minicluster.artifact> <spark.yarn.isHadoopProvided>false</spark.yarn.isHadoopProvided> <!-- SPARK-PARENT finished --> <!-- other dependency versions --> <scopt.version>4.1.0</scopt.version> <databricks.spark-xml.version>0.18.0</databricks.spark-xml.version> <spark.excel.version>${spark.version331}_0.18.6-beta1</spark.excel.version> <hsqldb.version>2.7.2</hsqldb.version> <jackcess.version>4.0.5</jackcess.version> <!-- when changing config version, remember to update it in DatabricksSmartDataLakeBuilder main method --> <typesafe.config.version>1.4.3</typesafe.config.version> <kxbmap.configs.version>0.6.1</kxbmap.configs.version> <monix.version>3.4.1</monix.version> <splunk.version>1.6.5.0</splunk.version> <sshj.version>0.35.0</sshj.version> <snowflake-spark.version>3.1.1</snowflake-spark.version> <snowflake-snowpark.version>1.15.0</snowflake-snowpark.version> <delta.version>3.3.0</delta.version> <iceberg.version>1.8.1</iceberg.version> <json4s.version>3.7.0-M11</json4s.version> <scaladoc.reader.version>1.0.3</scaladoc.reader.version> <scalatest.test.version>3.0.8</scalatest.test.version> <sshd.test.version>2.10.0</sshd.test.version> <!-- Sonar related --> <sonar.organization>smart-data-lake</sonar.organization> <sonar.host.url>https://sonarcloud.io</sonar.host.url> <scoverage.plugin.version>2.0.2</scoverage.plugin.version> <scoverage.scalacPluginVersion>2.0.11</scoverage.scalacPluginVersion> </properties> <scm> <connection>scm:git:git://github.com/smart-data-lake/smart-data-lake.git</connection> <developerConnection>scm:git:ssh://github.com/smart-data-lake/smart-data-lake.git</developerConnection> <url>http://github.com/smart-data-lake/smart-data-lake/tree/master</url> </scm> <repositories> <repository> <id>maven central</id> <name>Maven Central Repository</name> <url>https://repo1.maven.org/maven2/</url> </repository> <repository> <id>confluent</id> <name>Confluent Schema Repository</name> <url>https://packages.confluent.io/maven/</url> </repository> <!-- smartdatalake snapshots --> <repository> <id>ossrh</id> <name>ossrh snapshots</name> <url>https://oss.sonatype.org/content/repositories/snapshots/</url> <releases> <enabled>false</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> <build> <pluginManagement> <plugins> <!-- add scala sources, if we have also java sources using sourceDirectory / testSourceDirectory tag --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>3.4.0</version> <executions> <execution> <id>add-source</id> <phase>generate-sources</phase> <goals> <goal>add-source</goal> </goals> <configuration> <sources> <source>src/main/scala</source> </sources> </configuration> </execution> <execution> <id>add-test-source</id> <phase>generate-test-sources</phase> <goals> <goal>add-test-source</goal> </goals> <configuration> <sources> <source>src/test/scala</source> </sources> </configuration> </execution> </executions> </plugin> <!-- Compiles Scala sources. --> <plugin> <groupId>net.alchim31.maven</groupId> <artifactId>scala-maven-plugin</artifactId> <version>4.5.6</version> <!-- attention: maven build fails when upgrading version --> <executions> <execution> <goals> <goal>compile</goal> <goal>testCompile</goal> </goals> </execution> </executions> <configuration> <scalaCompatVersion>${scala.minor.version}</scalaCompatVersion> <checkMultipleScalaVersions>true</checkMultipleScalaVersions> <failOnMultipleScalaVersions>true</failOnMultipleScalaVersions> <recompileMode>incremental</recompileMode> <args> <arg>-unchecked</arg> <arg>-deprecation</arg> <arg>-feature</arg> <arg>-explaintypes</arg> <arg>-target:jvm-1.${maven.compiler.release}</arg> </args> <jvmArgs> <jvmArg>-Xms64m</jvmArg> <jvmArg>-Xmx1024m</jvmArg> </jvmArgs> <compilerPlugins> <!-- embedded scaladoc as annotations --> <!-- an alternative library would be com.github.andyglow:scaladoc-compiler-plugin, but there are plugin initialization problems with path on windows. --> <compilerPlugin> <groupId>com.github.takezoe</groupId> <artifactId>runtime-scaladoc-reader_${scala.minor.version}</artifactId> <version>${scaladoc.reader.version}</version> </compilerPlugin> </compilerPlugins> </configuration> </plugin> <!-- rewrite pom for compiling with different scala version profiles --> <plugin> <groupId>org.spurint.maven.plugins</groupId> <artifactId>scala-cross-maven-plugin</artifactId> <version>0.3.0</version> <executions> <execution> <id>rewrite-pom</id> <goals> <goal>rewrite-pom</goal> </goals> </execution> </executions> </plugin> <!-- Copies files in resources folders to target folder. --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>3.3.1</version> </plugin> <!-- Checks whether source files have the specified license header. --> <plugin> <groupId>com.mycila</groupId> <artifactId>license-maven-plugin</artifactId> <version>4.2</version> <configuration> <header>${basedir}/${license.header.file}</header> <properties> <copyright.name>${project.organization.name}</copyright.name> <copyright.contact>${project.organization.url}</copyright.contact> </properties> <includes> <include>src/**</include> </includes> <excludes> <exclude>**/*.accdb</exclude> <exclude>**/*.mdb</exclude> <exclude>**/*.csv</exclude> <exclude>**/*.keytab</exclude> <exclude>**/*.pkcs12</exclude> </excludes> <mapping> <scala>SLASHSTAR_STYLE</scala> <conf>SCRIPT_STYLE</conf> </mapping> <failIfMissing>false</failIfMissing> </configuration> <dependencies> <dependency> <groupId>com.mycila</groupId> <artifactId>license-maven-plugin-git</artifactId> <version>4.2</version> </dependency> </dependencies> <executions> <execution> <goals> <goal>check</goal> </goals> </execution> </executions> </plugin> <!-- Creates the jar without dependencies --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.3.0</version> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <mainClass>io.smartdatalake.app.SparkSmartDataLakeBuilder</mainClass> <addDefaultImplementationEntries>true</addDefaultImplementationEntries> </manifest> </archive> <excludes> <exclude>log4j2.*</exclude> <!-- Logging configuration should be left to user. --> <exclude>${project.artifactId}*.jar </exclude> <!-- avoid "Error assembling JAR" because of already existing artifact jar --> </excludes> </configuration> </plugin> <!-- Creates a JAR file with the source files of the project. --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>3.3.0</version> <executions> <execution> <id>attach-sources</id> <goals> <goal>jar-no-fork</goal> </goals> </execution> </executions> </plugin> <!-- Builds executable fat-jar that includes all dependencies --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.5.0</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <filters> <filter> <artifact>*:*</artifact> <excludes> <exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.RSA</exclude> <!-- handle some duplicate warnings: these files are not needed --> <exclude>META-INF/DEPENDENCIES</exclude> <exclude>META-INF/LICENSE</exclude> <exclude>META-INF/LICENSE.txt</exclude> <exclude>META-INF/NOTICE</exclude> <exclude>META-INF/NOTICE.txt</exclude> <exclude>META-INF/ASL2.0</exclude> <exclude>META-INF/NOTICE</exclude> <exclude>META-INF/MANIFEST.MF</exclude> <exclude>META-INF/maven/**/*</exclude> <exclude>META-INF/README.txt</exclude> <exclude>LICENSE</exclude> <exclude>LICENSE.txt</exclude> <exclude>NOTICE.txt</exclude> <!-- shading doesnt respect Java Modularisation (>JDK9) --> <exclude>module-info.class</exclude> </excludes> </filter> </filters> <shadedArtifactAttached>true</shadedArtifactAttached> <shadedClassifierName>jar-with-dependencies</shadedClassifierName> <artifactSet> <includes> <include>*:*</include> </includes> </artifactSet> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <manifestEntries> <Main-Class>io.smartdatalake.app.SparkSmartDataLakeBuilder</Main-Class> <Implementation-Version>${project.version}</Implementation-Version> <Multi-Release>true</Multi-Release> </manifestEntries> </transformer> <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" /> <transformer implementation="org.apache.logging.log4j.maven.plugins.shade.transformer.Log4j2PluginCacheFileTransformer" /> </transformers> </configuration> </execution> </executions> <dependencies> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-transform-maven-shade-plugin-extensions</artifactId> <version>0.1.0</version> </dependency> </dependencies> </plugin> <!-- Executes units tests with scalatest --> <plugin> <groupId>org.scalatest</groupId> <artifactId>scalatest-maven-plugin</artifactId> <version>2.2.0</version> <configuration> <reportsDirectory> ${project.build.directory}/scalatest-reports </reportsDirectory> <junitxml>.</junitxml> <filereports> ${project.artifactId}.txt </filereports> <stdout>WFT </stdout> <!-- without color, show full stack traces, show reminder of failed and canceled tests with short stack traces see: http://www.scalatest.org/user_guide/using_scalatest_with_sbt--> <environmentVariables> <SPARK_LOCAL_IP>127.0.0.1 </SPARK_LOCAL_IP> <!-- Suppresses Spark IP discovery during tests (when executed with mvn test) --> </environmentVariables> <argLine>--add-exports java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/sun.nio.cs=ALL-UNNAMED --add-opens=java.base/sun.security.action=ALL-UNNAMED --add-opens=java.base/sun.util.calendar=ALL-UNNAMED</argLine> </configuration> <executions> <execution> <goals> <goal>test</goal> </goals> </execution> </executions> </plugin> <!-- Checks for declared but unused and undeclared but used dependencies in the verify stage --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>3.6.0</version> <configuration> <failOnWarning>false</failOnWarning> <ignoreNonCompile>true</ignoreNonCompile> <ignoredUsedUndeclaredDependencies> <dependency>org.scalacheck:scalacheck_${scala.minor.version}</dependency> </ignoredUsedUndeclaredDependencies> </configuration> <executions> <execution> <goals> <goal>analyze-only</goal> </goals> </execution> </executions> </plugin> <!-- check for dependency version conflicts --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <version>3.3.0</version> <configuration> <rules> <requireMavenVersion> <version>2.0.6</version> </requireMavenVersion> <requireJavaVersion> <version>1.8</version> </requireJavaVersion> <dependencyConvergence/> <requireProperty> <property>scala.minor.version</property> <message>You must setscala.minor.version property by activating profile scala-2.11 or scala-2.12! </message> </requireProperty> </rules> </configuration> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>3.1.0</version> </plugin> </plugins> </pluginManagement> <plugins> <!-- Allows handling of version numbers --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>versions-maven-plugin</artifactId> <version>2.16.0</version> </plugin> <!-- disable executing surefire tests as we use scalatest --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.1.2</version> <configuration> <skip>true</skip> </configuration> </plugin> </plugins> </build> <!-- cleanup version of conflicting transitive dependencies reported by mvn enforcer:enforce --> <dependencyManagement> <dependencies> <!-- Copy of SPARK-PARENT pom dependency management to cleanup spark dependencies. Import of spark-parent doesnt work, as it is no longer possible to change version by modifying properties. --> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-tags_${scala.binary.version}</artifactId> <version>${spark.version}</version> <scope>${spark.deps.scope}</scope> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-tags_${scala.binary.version}</artifactId> <version>${spark.version}</version> <type>test-jar</type> </dependency> <!-- #if scala-2.13 --><!-- <dependency> <groupId>org.scala-lang.modules</groupId> <artifactId>scala-parallel-collections_${scala.binary.version}</artifactId> <version>1.0.3</version> </dependency> --><!-- #endif scala-2.13 --> <dependency> <groupId>com.twitter</groupId> <artifactId>chill_${scala.binary.version}</artifactId> <version>${chill.version}</version> <exclusions> <exclusion> <groupId>org.apache.xbean</groupId> <artifactId>xbean-asm7-shaded</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.twitter</groupId> <artifactId>chill-java</artifactId> <version>${chill.version}</version> </dependency> <!-- This artifact is a shaded version of ASM 9.x. The POM that was used to produce this is at https://github.com/apache/geronimo-xbean/tree/trunk/xbean-asm9-shaded For context on why we shade ASM, see SPARK-782 and SPARK-6152. --> <dependency> <groupId>org.apache.xbean</groupId> <artifactId>xbean-asm9-shaded</artifactId> <version>4.22</version> </dependency> <!-- Shaded deps marked as provided. These are promoted to compile scope in the modules where we want the shaded classes to appear in the associated jar. --> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-http</artifactId> <version>${jetty.version}</version> <scope>${jetty.deps.scope}</scope> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-continuation</artifactId> <version>${jetty.version}</version> <scope>${jetty.deps.scope}</scope> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-servlet</artifactId> <version>${jetty.version}</version> <scope>${jetty.deps.scope}</scope> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-servlets</artifactId> <version>${jetty.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-proxy</artifactId> <version>${jetty.version}</version> <scope>${jetty.deps.scope}</scope> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-client</artifactId> <version>${jetty.version}</version> <scope>${jetty.deps.scope}</scope> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-util</artifactId> <version>${jetty.version}</version> <scope>${jetty.deps.scope}</scope> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-security</artifactId> <version>${jetty.version}</version> <scope>${jetty.deps.scope}</scope> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-plus</artifactId> <version>${jetty.version}</version> <scope>${jetty.deps.scope}</scope> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-server</artifactId> <version>${jetty.version}</version> <scope>${jetty.deps.scope}</scope> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-webapp</artifactId> <version>${jetty.version}</version> <scope>${jetty.deps.scope}</scope> </dependency> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>${guava.version}</version> <scope>${spark.deps.scope}</scope> </dependency> <dependency> <groupId>org.jpmml</groupId> <artifactId>pmml-model</artifactId> <version>1.4.8</version> <scope>${spark.deps.scope}</scope> <exclusions> <exclusion> <groupId>org.jpmml</groupId> <artifactId>pmml-agent</artifactId> </exclusion> </exclusions> </dependency> <!-- End of shaded deps --> <!-- Provide a JAXB impl; no longer auto available in Java 9+ in the JDK --> <dependency> <groupId>org.glassfish.jaxb</groupId> <artifactId>jaxb-runtime</artifactId> <version>2.3.2</version> <scope>compile</scope> <exclusions> <!-- for now, we only write XML in PMML export, and these can be excluded --> <exclusion> <groupId>com.sun.xml.fastinfoset</groupId> <artifactId>FastInfoset</artifactId> </exclusion> <exclusion> <groupId>org.glassfish.jaxb</groupId> <artifactId>txw2</artifactId> </exclusion> <exclusion> <groupId>org.jvnet.staxex</groupId> <artifactId>stax-ex</artifactId> </exclusion> <!-- SPARK-27611: Exclude redundant javax.activation implementation, which conflicts with the existing javax.activation:activation:1.1.1 dependency. --> <exclusion> <groupId>jakarta.activation</groupId> <artifactId>jakarta.activation-api</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>${commons-lang3.version}</version> <scope>${spark.deps.scope}</scope> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-text</artifactId> <version>1.10.0</version> <scope>${spark.deps.scope}</scope> </dependency> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>${commons-lang2.version}</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>${commons-io.version}</version> <scope>${spark.deps.scope}</scope> </dependency> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>${commons-codec.version}</version> <scope>${spark.deps.scope}</scope> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-compress</artifactId> <version>${commons-compress.version}</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-math3</artifactId> <version>${commons.math3.version}</version> </dependency> <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>${commons.collections.version}</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-collections4</artifactId> <version>${commons.collections4.version}</version> </dependency> <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> <version>1.9.4</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <!-- Hive uses commons-logging 1.1.3 from 0.13 to 1.2 --> <version>1.1.3</version> <scope>${spark.deps.scope}</scope> </dependency> <dependency> <groupId>org.apache.ivy</groupId> <artifactId>ivy</artifactId> <version>${ivy.version}</version> </dependency> <dependency> <groupId>com.google.code.findbugs</groupId> <artifactId>jsr305</artifactId> <version>${jsr305.version}</version> <scope>${spark.deps.scope}</scope> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>${commons.httpclient.version}</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpmime</artifactId> <version>${commons.httpclient.version}</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcore</artifactId> <version>${commons.httpcore.version}</version> </dependency> <dependency> <groupId>org.rocksdb</groupId> <artifactId>rocksdbjni</artifactId> <version>7.9.2</version> </dependency> <dependency> <groupId>${leveldbjni.group}</groupId> <artifactId>leveldbjni-all</artifactId> <version>1.8</version> </dependency> <!-- Added for selenium only, and should match its dependent version: --> <dependency> <groupId>xml-apis</groupId> <artifactId>xml-apis</artifactId> <version>1.4.01</version> </dependency> <!-- log4j --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jul-to-slf4j</artifactId> <version>${slf4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> <version>${slf4j.version}</version> <!-- runtime scope is appropriate, but causes SBT build problems --> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j2-impl</artifactId> <version>${log4j.version}</version> <scope>${hadoop.deps.scope}</scope> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>${log4j.version}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>${log4j.version}</version> <scope>${spark.deps.scope}</scope> </dependency> <dependency> <!-- API bridge between log4j 1 and 2 --> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-1.2-api</artifactId> <version>${log4j.version}</version> <scope>${hadoop.deps.scope}</scope> </dependency> <!-- end --> <dependency> <groupId>com.ning</groupId> <artifactId>compress-lzf</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>org.xerial.snappy</groupId> <artifactId>snappy-java</artifactId> <version>${snappy.version}</version> </dependency> <dependency> <groupId>org.lz4</groupId> <artifactId>lz4-java</artifactId> <version>1.8.0</version> </dependency> <dependency> <groupId>com.github.luben</groupId> <artifactId>zstd-jni</artifactId> <version>1.5.2-5</version> </dependency> <dependency> <groupId>com.clearspring.analytics</groupId> <artifactId>stream</artifactId> <version>2.9.6</version> <exclusions> <!-- Only HyperLogLogPlus is used, which doesn't depend on fastutil --> <exclusion> <groupId>it.unimi.dsi</groupId> <artifactId>fastutil</artifactId> </exclusion> </exclusions> </dependency> <!-- In theory we need not directly depend on protobuf since Spark does not directly use it. However, when building with Hadoop/YARN 2.2 Maven doesn't correctly bump the protobuf version up from the one Mesos gives. For now we include this variable to explicitly bump the version when building with YARN. It would be nice to figure out why Maven can't resolve this correctly (like SBT does). --> <dependency> <groupId>com.google.protobuf</groupId> <artifactId>protobuf-java</artifactId> <version>${protobuf.hadoopDependency.version}</version> <scope>${hadoop.deps.scope}</scope> </dependency> <dependency> <groupId>org.roaringbitmap</groupId> <artifactId>RoaringBitmap</artifactId> <version>0.9.38</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>${netty.version}</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-bom</artifactId> <version>${netty.version}</version> <type>pom</type> <scope>import</scope> </dependency> <!-- SPARK-38885: After Netty 4.1.76, add the following `Netty` dependencies explicitly to ensure `./dev/test-dependencies.sh` produce the same results on Linux and MacOS. --> <dependency> <groupId>io.netty</groupId> <artifactId>netty-transport-native-epoll</artifactId> <version>${netty.version}</version> <classifier>linux-x86_64</classifier> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-transport-native-epoll</artifactId> <version>${netty.version}</version> <classifier>linux-aarch_64</classifier> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-transport-native-kqueue</artifactId> <version>${netty.version}</version> <classifier>osx-aarch_64</classifier> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-transport-native-kqueue</artifactId> <version>${netty.version}</version> <classifier>osx-x86_64</classifier> </dependency> <!-- Netty End --> <dependency> <groupId>org.apache.derby</groupId> <artifactId>derby</artifactId> <version>${derby.version}</version> </dependency> <dependency> <groupId>io.dropwizard.metrics</groupId> <artifactId>metrics-core</artifactId> <version>${codahale.metrics.version}</version> </dependency> <dependency> <groupId>io.dropwizard.metrics</groupId> <artifactId>metrics-jvm</artifactId> <version>${codahale.metrics.version}</version> </dependency> <dependency> <groupId>io.dropwizard.metrics</groupId> <artifactId>metrics-json</artifactId> <version>${codahale.metrics.version}</version> </dependency> <dependency> <groupId>io.dropwizard.metrics</groupId> <artifactId>metrics-graphite</artifactId> <version>${codahale.metrics.version}</version> </dependency> <dependency> <groupId>io.dropwizard.metrics</groupId> <artifactId>metrics-jmx</artifactId> <version>${codahale.metrics.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>${fasterxml.jackson.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>${fasterxml.jackson.databind.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>${fasterxml.jackson.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.datatype</groupId> <artifactId>jackson-datatype-jsr310</artifactId> <version>${fasterxml.jackson.version}</version> </dependency> <!-- Guava is excluded because of SPARK-6149. The Guava version referenced in this module is 15.0, which causes runtime incompatibility issues. --> <dependency> <groupId>com.fasterxml.jackson.module</groupId> <artifactId>jackson-module-scala_${scala.binary.version}</artifactId> <version>${fasterxml.jackson.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.module</groupId> <artifactId>jackson-module-jaxb-annotations</artifactId> <version>${fasterxml.jackson.version}</version> </dependency> <dependency> <groupId>org.glassfish.jersey.core</groupId> <artifactId>jersey-server</artifactId> <version>${jersey.version}</version> <!-- SPARK-28765 Unused JDK11-specific dependency --> <exclusions> <exclusion> <groupId>jakarta.xml.bind</groupId> <artifactId>jakarta.xml.bind-api</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.glassfish.jersey.core</groupId> <artifactId>jersey-common</artifactId> <version>${jersey.version}</version> <!-- SPARK-28765 Unused JDK11-specific dependency --> <exclusions> <exclusion> <groupId>com.sun.activation</groupId> <artifactId>jakarta.activation</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.glassfish.jersey.core</groupId> <artifactId>jersey-client</artifactId> <version>${jersey.version}</version> </dependency> <dependency> <groupId>org.glassfish.jersey.containers</groupId> <artifactId>jersey-container-servlet</artifactId> <version>${jersey.version}</version> </dependency> <dependency> <groupId>org.glassfish.jersey.containers</groupId> <artifactId>jersey-container-servlet-core</artifactId> <version>${jersey.version}</version> </dependency> <dependency> <groupId>org.glassfish.jersey.inject</groupId> <artifactId>jersey-hk2</artifactId> <version>${jersey.version}</version> </dependency> <dependency> <groupId>org.glassfish.jersey</groupId> <artifactId>jersey-client</artifactId> <version>${jersey.version}</version> </dependency> <dependency> <groupId>javax.ws.rs</groupId> <artifactId>javax.ws.rs-api</artifactId> <version>2.0.1</version> </dependency> <dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.2.11</version> </dependency> <dependency> <groupId>org.scalanlp</groupId> <artifactId>breeze_${scala.binary.version}</artifactId> <version>2.1.0</version> <exclusions> <exclusion> <groupId>org.apache.commons</groupId> <artifactId>commons-math3</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.chuusai</groupId> <artifactId>shapeless_${scala.binary.version}</artifactId> <version>2.3.9</version> </dependency> <dependency> <groupId>org.json4s</groupId> <artifactId>json4s-jackson_${scala.binary.version}</artifactId> <version>${json4s.version}</version> <exclusions> <exclusion> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.json4s</groupId> <artifactId>json4s-ast_${scala.minor.version}</artifactId> <version>${json4s.version}</version> </dependency> <dependency> <groupId>org.json4s</groupId> <artifactId>json4s-core_${scala.minor.version}</artifactId> <version>${json4s.version}</version> </dependency> <dependency> <groupId>org.scala-lang.modules</groupId> <artifactId>scala-xml_${scala.binary.version}</artifactId> <version>2.1.0</version> </dependency> <dependency> <groupId>org.scala-lang</groupId> <artifactId>scala-compiler</artifactId> <version>${scala.version}</version> <scope>${scala.deps.scope}</scope> <exclusions> <exclusion> <groupId>org.scala-lang.modules</groupId> <artifactId>scala-xml_2.12</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.scala-lang</groupId> <artifactId>scala-reflect</artifactId> <version>${scala.version}</version> <scope>${scala.deps.scope}</scope> </dependency> <dependency> <groupId>org.scala-lang</groupId> <artifactId>scala-library</artifactId> <version>${scala.version}</version> <scope>${scala.deps.scope}</scope> </dependency> <dependency> <groupId>org.scala-lang.modules</groupId> <artifactId>scala-parser-combinators_${scala.binary.version}</artifactId> <version>2.1.1</version> </dependency> <dependency> <groupId>jline</groupId> <artifactId>jline</artifactId> <version>2.14.6</version> </dependency> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-recipes</artifactId> <version>${curator.version}</version> <scope>${hadoop.deps.scope}</scope> <exclusions> <exclusion> <groupId>org.jboss.netty</groupId> <artifactId>netty</artifactId> </exclusion> <exclusion> <groupId>jline</groupId> <artifactId>jline</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-client</artifactId> <version>${curator.version}</version> </dependency> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId> <version>${curator.version}</version> </dependency> <!-- Hadoop 3.x dependencies --> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>${hadoop-client-api.artifact}</artifactId> <version>${hadoop.version}</version> <scope>${hadoop.deps.scope}</scope> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>${hadoop-client-runtime.artifact}</artifactId> <version>${hadoop.version}</version> <scope>${hadoop.deps.scope}</scope> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>${hadoop-client-minicluster.artifact}</artifactId> <version>${yarn.version}</version> <scope>test</scope> </dependency> <!-- End of Hadoop 3.x dependencies --> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>${hadoop.version}</version> <scope>${hadoop.deps.scope}</scope> <exclusions> <exclusion> <groupId>org.fusesource.leveldbjni</groupId> <artifactId>leveldbjni-all</artifactId> </exclusion> <exclusion> <groupId>asm</groupId> <artifactId>asm</artifactId> </exclusion> <exclusion> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> </exclusion> <exclusion> <groupId>org.ow2.asm</groupId> <artifactId>asm</artifactId> </exclusion> <exclusion> <groupId>org.jboss.netty</groupId> <artifactId>netty</artifactId> </exclusion> <exclusion> <groupId>io.netty</groupId> <artifactId>netty</artifactId> </exclusion> <exclusion> <!-- BeanUtils >= 1.9.0 no longer splits out -core; exclude it --> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils-core</artifactId> </exclusion> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> <exclusion> <groupId>org.mockito</groupId> <artifactId>mockito-all</artifactId> </exclusion> <exclusion> <groupId>org.mortbay.jetty</groupId> <artifactId>servlet-api-2.5</artifactId> </exclusion> <exclusion> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> </exclusion> <exclusion> <groupId>junit</groupId> <artifactId>junit</artifactId> </exclusion> <exclusion> <groupId>com.sun.jersey</groupId> <artifactId>*</artifactId> </exclusion> <exclusion> <groupId>com.sun.jersey.jersey-test-framework</groupId> <artifactId>*</artifactId> </exclusion> <exclusion> <groupId>com.sun.jersey.contribs</groupId> <artifactId>*</artifactId> </exclusion> <exclusion> <groupId>net.java.dev.jets3t</groupId> <artifactId>jets3t</artifactId> </exclusion> <!-- Hadoop-3.x --> <exclusion> <groupId>javax.ws.rs</groupId> <artifactId>jsr311-api</artifactId> </exclusion> <exclusion> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-webapp</artifactId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <!-- exclusions according to https://github.com/apache/hadoop/blob/trunk/hadoop-client-modules/hadoop-client-api/pom.xml --> <exclusion> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> </exclusion> <exclusion> <groupId>xml-apis</groupId> <artifactId>xml-apis</artifactId> </exclusion> <!-- avoid duplicate --> <exclusion> <groupId>org.eclipse.jetty.websocket</groupId> <artifactId>websocket-client</artifactId> </exclusion> </exclusions> </dependency> <!-- Managed up to match Hadoop in HADOOP-16530 --> <dependency> <groupId>xerces</groupId> <artifactId>xercesImpl</artifactId> <version>2.12.2</version> </dependency> <dependency> <groupId>org.apache.avro</groupId> <artifactId>avro</artifactId> <version>${avro.version}</version> <scope>${spark.deps.scope}</scope> </dependency> <dependency> <groupId>org.apache.avro</groupId> <artifactId>avro-mapred</artifactId> <version>${avro.version}</version> <scope>${hive.deps.scope}</scope> <exclusions> <exclusion> <groupId>org.apache.avro</groupId> <artifactId>avro-ipc-jetty</artifactId> </exclusion> <exclusion> <groupId>io.netty</groupId> <artifactId>netty</artifactId> </exclusion> <exclusion> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty</artifactId> </exclusion> <exclusion> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-util</artifactId> </exclusion> <exclusion> <groupId>org.mortbay.jetty</groupId> <artifactId>servlet-api</artifactId> </exclusion> <exclusion> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> </exclusion> <exclusion> <groupId>javax.annotation</groupId> <artifactId>javax.annotation-api</artifactId> </exclusion> <exclusion> <groupId>com.github.luben</groupId> <artifactId>zstd-jni</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.tukaani</groupId> <artifactId>xz</artifactId> <version>1.8</version> </dependency> <!-- See SPARK-23654 for info on this dependency; It is used to keep javax.activation at v1.1.1 after dropping jets3t as a dependency. --> <dependency> <groupId>javax.activation</groupId> <artifactId>activation</artifactId> <version>1.1.1</version> <scope>${hadoop.deps.scope}</scope> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-yarn-api</artifactId> <version>${yarn.version}</version> <scope>${hadoop.deps.scope}</scope> <exclusions> <exclusion> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> </exclusion> <exclusion> <groupId>asm</groupId> <artifactId>asm</artifactId> </exclusion> <exclusion> <groupId>org.ow2.asm</groupId> <artifactId>asm</artifactId> </exclusion> <exclusion> <groupId>org.jboss.netty</groupId> <artifactId>netty</artifactId> </exclusion> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> <exclusion> <groupId>com.sun.jersey</groupId> <artifactId>*</artifactId> </exclusion> <exclusion> <groupId>com.sun.jersey.jersey-test-framework</groupId> <artifactId>*</artifactId> </exclusion> <exclusion> <groupId>com.sun.jersey.contribs</groupId> <artifactId>*</artifactId> </exclusion> <exclusion> <groupId>jdk.tools</groupId> <artifactId>jdk.tools</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-yarn-common</artifactId> <version>${yarn.version}</version> <scope>${hadoop.deps.scope}</scope> <exclusions> <exclusion> <groupId>asm</groupId> <artifactId>asm</artifactId> </exclusion> <exclusion> <groupId>org.ow2.asm</groupId> <artifactId>asm</artifactId> </exclusion> <exclusion> <groupId>org.jboss.netty</groupId> <artifactId>netty</artifactId> </exclusion> <exclusion> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> </exclusion> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> <exclusion> <groupId>com.sun.jersey</groupId> <artifactId>*</artifactId> </exclusion> <exclusion> <groupId>com.sun.jersey.jersey-test-framework</groupId> <artifactId>*</artifactId> </exclusion> <exclusion> <groupId>com.sun.jersey.contribs</groupId> <artifactId>*</artifactId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-yarn-server-web-proxy</artifactId> <version>${yarn.version}</version> <scope>${hadoop.deps.scope}</scope> <exclusions> <exclusion> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-yarn-server-common</artifactId> </exclusion> <exclusion> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-yarn-common</artifactId> </exclusion> <exclusion> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-yarn-api</artifactId> </exclusion> <exclusion> <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk15on</artifactId> </exclusion> <exclusion> <groupId>org.bouncycastle</groupId> <artifactId>bcpkix-jdk15on</artifactId> </exclusion> <exclusion> <groupId>org.fusesource.leveldbjni</groupId> <artifactId>leveldbjni-all</artifactId> </exclusion> <exclusion> <groupId>asm</groupId> <artifactId>asm</artifactId> </exclusion> <exclusion> <groupId>org.ow2.asm</groupId> <artifactId>asm</artifactId> </exclusion> <exclusion> <groupId>org.jboss.netty</groupId> <artifactId>netty</artifactId> </exclusion> <exclusion> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> </exclusion> <exclusion> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> </exclusion> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> <exclusion> <groupId>com.sun.jersey</groupId> <artifactId>*</artifactId> </exclusion> <exclusion> <groupId>com.sun.jersey.jersey-test-framework</groupId> <artifactId>*</artifactId> </exclusion> <exclusion> <groupId>com.sun.jersey.contribs</groupId> <artifactId>*</artifactId> </exclusion> <!-- Hadoop-3.x --> <exclusion> <groupId>com.zaxxer</groupId> <artifactId>HikariCP-java7</artifactId> </exclusion> <exclusion> <groupId>com.microsoft.sqlserver</groupId> <artifactId>mssql-jdbc</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-yarn-client</artifactId> <version>${yarn.version}</version> <scope>${hadoop.deps.scope}</scope> <exclusions> <exclusion> <groupId>asm</groupId> <artifactId>asm</artifactId> </exclusion> <exclusion> <groupId>org.ow2.asm</groupId> <artifactId>asm</artifactId> </exclusion> <exclusion> <groupId>org.jboss.netty</groupId> <artifactId>netty</artifactId> </exclusion> <exclusion> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> </exclusion> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> <exclusion> <groupId>com.sun.jersey</groupId> <artifactId>*</artifactId> </exclusion> <exclusion> <groupId>com.sun.jersey.jersey-test-framework</groupId> <artifactId>*</artifactId> </exclusion> <exclusion> <groupId>com.sun.jersey.contribs</groupId> <artifactId>*</artifactId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>${zookeeper.version}</version> <scope>${hadoop.deps.scope}</scope> <exclusions> <exclusion> <groupId>org.jboss.netty</groupId> <artifactId>netty</artifactId> </exclusion> <exclusion> <groupId>jline</groupId> <artifactId>jline</artifactId> </exclusion> <exclusion> <groupId>io.netty</groupId> <artifactId>netty-handler</artifactId> </exclusion> <exclusion> <groupId>io.netty</groupId> <artifactId>netty-transport-native-epoll</artifactId> </exclusion> <exclusion> <groupId>com.github.spotbugs</groupId> <artifactId>spotbugs-annotations</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-asl</artifactId> <version>${codehaus.jackson.version}</version> <scope>${hadoop.deps.scope}</scope> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>${codehaus.jackson.version}</version> <scope>${hadoop.deps.scope}</scope> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-xc</artifactId> <version>${codehaus.jackson.version}</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-jaxrs</artifactId> <version>${codehaus.jackson.version}</version> </dependency> <dependency> <groupId>${hive.group}</groupId> <artifactId>hive-beeline</artifactId> <version>${hive.version}</version> <scope>${hive.deps.scope}</scope> <exclusions> <exclusion> <groupId>${hive.group}</groupId> <artifactId>hive-common</artifactId> </exclusion> <exclusion> <groupId>${hive.group}</groupId> <artifactId>hive-exec</artifactId> </exclusion> <exclusion> <groupId>${hive.group}</groupId> <artifactId>hive-jdbc</artifactId> </exclusion> <exclusion> <groupId>${hive.group}</groupId> <artifactId>hive-metastore</artifactId> </exclusion> <exclusion> <groupId>${hive.group}</groupId> <artifactId>hive-service</artifactId> </exclusion> <exclusion> <groupId>${hive.group}</groupId> <artifactId>hive-service-rpc</artifactId> </exclusion> <exclusion> <groupId>${hive.group}</groupId> <artifactId>hive-shims</artifactId> </exclusion> <exclusion> <groupId>org.apache.thrift</groupId> <artifactId>libthrift</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>${hive.group}</groupId> <artifactId>hive-cli</artifactId> <version>${hive.version}</version> <scope>${hive.deps.scope}</scope> <exclusions> <exclusion> <groupId>${hive.group}</groupId> <artifactId>hive-common</artifactId> </exclusion> <exclusion> <groupId>${hive.group}</groupId> <artifactId>hive-exec</artifactId> </exclusion> <exclusion> <groupId>${hive.group}</groupId> <artifactId>hive-jdbc</artifactId> </exclusion> <exclusion> <groupId>${hive.group}</groupId> <artifactId>hive-metastore</artifactId> </exclusion> <exclusion> <groupId>${hive.group}</groupId> <artifactId>hive-serde</artifactId> </exclusion> <exclusion> <groupId>${hive.group}</groupId> <artifactId>hive-service</artifactId> </exclusion> <exclusion> <groupId>${hive.group}</groupId> <artifactId>hive-shims</artifactId> </exclusion> <exclusion> <groupId>org.apache.thrift</groupId> <artifactId>libthrift</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>${hive.group}</groupId> <artifactId>hive-common</artifactId> <version>${hive.version}</version> <scope>${hive.deps.scope}</scope> <exclusions> <exclusion> <groupId>${hive.group}</groupId> <artifactId>hive-shims</artifactId> </exclusion> <exclusion> <groupId>org.apache.ant</groupId> <artifactId>ant</artifactId> </exclusion> <exclusion> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> </exclusion> <exclusion> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-auth</artifactId> </exclusion> <exclusion> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> <!-- Begin of Hive 2.3 exclusion --> <!-- ORC is needed, but the version should be consistent with the `sql/core` ORC data source. Looks like this is safe, please see the major changes from ORC 1.3.3 to 1.5.4: HIVE-17631 and HIVE-19465 --> <exclusion> <groupId>org.apache.orc</groupId> <artifactId>orc-core</artifactId> </exclusion> <!-- jetty-all conflict with jetty 9.4.12.v20180830 --> <exclusion> <groupId>org.eclipse.jetty.aggregate</groupId> <artifactId>jetty-all</artifactId> </exclusion> <!-- org.apache.logging.log4j:* conflict with log4j 1.2.17 --> <exclusion> <groupId>org.apache.logging.log4j</groupId> <artifactId>*</artifactId> </exclusion> <!-- Hive includes javax.servlet to fix the Hive on Spark test failure; see HIVE-12783 --> <exclusion> <groupId>org.eclipse.jetty.orbit</groupId> <artifactId>javax.servlet</artifactId> </exclusion> <!-- hive-storage-api is needed and must be explicitly included later --> <exclusion> <groupId>org.apache.hive</groupId> <artifactId>hive-storage-api</artifactId> </exclusion> <!-- End of Hive 2.3 exclusion --> </exclusions> </dependency> <dependency> <groupId>${hive.group}</groupId> <artifactId>hive-exec</artifactId> <classifier>${hive.classifier}</classifier> <version>${hive.version}</version> <scope>${hive.deps.scope}</scope> <exclusions> <!-- pull this in when needed; the explicit definition culls the surplus--> <exclusion> <groupId>${hive.group}</groupId> <artifactId>hive-metastore</artifactId> </exclusion> <exclusion> <groupId>${hive.group}</groupId> <artifactId>hive-shims</artifactId> </exclusion> <exclusion> <groupId>${hive.group}</groupId> <artifactId>hive-ant</artifactId> </exclusion> <exclusion> <groupId>${hive.group}</groupId> <artifactId>hive-vector-code-gen</artifactId> </exclusion> <!-- break the loop --> <exclusion> <groupId>${hive.group}</groupId> <artifactId>spark-client</artifactId> </exclusion> <!-- excluded dependencies & transitive. Some may be needed to be explicitly included--> <exclusion> <groupId>ant</groupId> <artifactId>ant</artifactId> </exclusion> <exclusion> <groupId>org.apache.ant</groupId> <artifactId>ant</artifactId> </exclusion> <exclusion> <groupId>com.esotericsoftware.kryo</groupId> <artifactId>kryo</artifactId> </exclusion> <exclusion> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> </exclusion> <exclusion> <groupId>org.apache.avro</groupId> <artifactId>avro-mapred</artifactId> </exclusion> <!-- Do not need Calcite because we disabled hive.cbo.enable --> <exclusion> <groupId>org.apache.calcite</groupId> <artifactId>calcite-core</artifactId> </exclusion> <exclusion> <groupId>org.apache.calcite</groupId> <artifactId>calcite-avatica</artifactId> </exclusion> <exclusion> <groupId>org.apache.curator</groupId> <artifactId>apache-curator</artifactId> </exclusion> <exclusion> <groupId>org.apache.curator</groupId> <artifactId>curator-client</artifactId> </exclusion> <exclusion> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId> </exclusion> <exclusion> <groupId>org.apache.thrift</groupId> <artifactId>libthrift</artifactId> </exclusion> <exclusion> <groupId>org.apache.thrift</groupId> <artifactId>libfb303</artifactId> </exclusion> <exclusion> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> <exclusion> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy-all</artifactId> </exclusion> <exclusion> <groupId>jline</groupId> <artifactId>jline</artifactId> </exclusion> <!-- Cat X license now; see SPARK-18262 --> <exclusion> <groupId>org.json</groupId> <artifactId>json</artifactId> </exclusion> <!-- Begin of Hive 2.3 exclusion --> <!-- Do not need Tez --> <exclusion> <groupId>${hive.group}</groupId> <artifactId>hive-llap-tez</artifactId> </exclusion> <!-- Do not need Calcite, see SPARK-27054 --> <exclusion> <groupId>org.apache.calcite</groupId> <artifactId>calcite-druid</artifactId> </exclusion> <exclusion> <groupId>org.apache.calcite.avatica</groupId> <artifactId>avatica</artifactId> </exclusion> <!-- org.apache.logging.log4j:* conflict with log4j 1.2.17 --> <exclusion> <groupId>org.apache.logging.log4j</groupId> <artifactId>*</artifactId> </exclusion> <exclusion> <groupId>net.hydromatic</groupId> <artifactId>eigenbase-properties</artifactId> </exclusion> <exclusion> <groupId>org.codehaus.janino</groupId> <artifactId>commons-compiler</artifactId> </exclusion> <exclusion> <groupId>org.codehaus.janino</groupId> <artifactId>janino</artifactId> </exclusion> <exclusion> <groupId>org.pentaho</groupId> <artifactId>pentaho-aggdesigner-algorithm</artifactId> </exclusion> <!-- End of Hive 2.3 exclusion --> </exclusions> </dependency> <dependency> <groupId>${hive.group}</groupId> <artifactId>hive-jdbc</artifactId> <version>${hive.version}</version> <exclusions> <exclusion> <groupId>${hive.group}</groupId> <artifactId>hive-common</artifactId> </exclusion> <exclusion> <groupId>${hive.group}</groupId> <artifactId>hive-metastore</artifactId> </exclusion> <exclusion> <groupId>${hive.group}</groupId> <artifactId>hive-serde</artifactId> </exclusion> <exclusion> <groupId>${hive.group}</groupId> <artifactId>hive-service</artifactId> </exclusion> <exclusion> <groupId>${hive.group}</groupId> <artifactId>hive-service-rpc</artifactId> </exclusion> <exclusion> <groupId>${hive.group}</groupId> <artifactId>hive-shims</artifactId> </exclusion> <exclusion> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId> </exclusion> <exclusion> <groupId>org.apache.thrift</groupId> <artifactId>libthrift</artifactId> </exclusion> <exclusion> <groupId>org.apache.thrift</groupId> <artifactId>libfb303</artifactId> </exclusion> <exclusion> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> <exclusion> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy-all</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>${hive.group}</groupId> <artifactId>hive-metastore</artifactId> <version>${hive.version}</version> <scope>${hive.deps.scope}</scope> <exclusions> <exclusion> <groupId>${hive.group}</groupId> <artifactId>hive-serde</artifactId> </exclusion> <exclusion> <groupId>${hive.group}</groupId> <artifactId>hive-shims</artifactId> </exclusion> <exclusion> <groupId>org.apache.thrift</groupId> <artifactId>libfb303</artifactId> </exclusion> <exclusion> <groupId>org.apache.thrift</groupId> <artifactId>libthrift</artifactId> </exclusion> <exclusion> <groupId>org.mortbay.jetty</groupId> <artifactId>servlet-api</artifactId> </exclusion> <exclusion> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <!-- Begin of Hive 2.3 exclusion --> <!-- Hive removes the HBase Metastore; see HIVE-17234 --> <exclusion> <groupId>org.apache.hbase</groupId> <artifactId>hbase-client</artifactId> </exclusion> <exclusion> <groupId>co.cask.tephra</groupId> <artifactId>*</artifactId> </exclusion> <!-- End of Hive 2.3 exclusion --> </exclusions> </dependency> <dependency> <groupId>${hive.group}</groupId> <artifactId>hive-serde</artifactId> <version>${hive.version}</version> <scope>${hive.deps.scope}</scope> <exclusions> <exclusion> <groupId>${hive.group}</groupId> <artifactId>hive-common</artifactId> </exclusion> <exclusion> <groupId>${hive.group}</groupId> <artifactId>hive-shims</artifactId> </exclusion> <exclusion> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> </exclusion> <exclusion> <groupId>com.google.code.findbugs</groupId> <artifactId>jsr305</artifactId> </exclusion> <exclusion> <groupId>org.apache.avro</groupId> <artifactId>avro</artifactId> </exclusion> <exclusion> <groupId>org.apache.thrift</groupId> <artifactId>libthrift</artifactId> </exclusion> <exclusion> <groupId>org.apache.thrift</groupId> <artifactId>libfb303</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> <exclusion> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy-all</artifactId> </exclusion> <!-- Begin of Hive 2.3 exclusion --> <exclusion> <groupId>${hive.group}</groupId> <artifactId>hive-service-rpc</artifactId> </exclusion> <!-- parquet-hadoop-bundle:1.8.1 conflict with 1.12.3 --> <exclusion> <groupId>org.apache.parquet</groupId> <artifactId>parquet-hadoop-bundle</artifactId> </exclusion> <!-- Do not need Jasper, see HIVE-19799 --> <exclusion> <groupId>tomcat</groupId> <artifactId>jasper-compiler</artifactId> </exclusion> <exclusion> <groupId>tomcat</groupId> <artifactId>jasper-runtime</artifactId> </exclusion> <!-- End of Hive 2.3 exclusion --> </exclusions> </dependency> <dependency> <groupId>${hive.group}</groupId> <artifactId>hive-service-rpc</artifactId> <version>3.1.3</version> <exclusions> <exclusion> <groupId>*</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>net.sf.jpam</groupId> <artifactId>jpam</artifactId> <scope>${hive.deps.scope}</scope> <version>${jpam.version}</version> <exclusions> <exclusion> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> </exclusion> </exclusions> </dependency> <!-- hive shims pulls in hive 0.23 and a transitive dependency of the Hadoop version Hive was built against. This dependency cuts out the YARN/hadoop dependency, which is needed by Hive to submit work to a YARN cluster.--> <dependency> <groupId>${hive.group}</groupId> <artifactId>hive-shims</artifactId> <version>${hive.version}</version> <scope>${hive.deps.scope}</scope> <exclusions> <exclusion> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </exclusion> <exclusion> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-yarn-server-resourcemanager</artifactId> </exclusion> <exclusion> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId> </exclusion> <exclusion> <groupId>org.apache.thrift</groupId> <artifactId>libthrift</artifactId> </exclusion> <exclusion> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> <exclusion> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy-all</artifactId> </exclusion> <!-- Begin of Hive 2.3 exclusion --> <!-- Exclude log4j-slf4j-impl, otherwise throw NCDFE when starting spark-shell --> <exclusion> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId> </exclusion> <!-- End of Hive 2.3 exclusion --> </exclusions> </dependency> <!-- hive-llap-common is needed when registering UDFs in Hive 2.3. We add it here, otherwise -Phive-provided won't work. --> <dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-llap-common</artifactId> <version>${hive23.version}</version> <scope>${hive.deps.scope}</scope> <exclusions> <exclusion> <groupId>org.apache.hive</groupId> <artifactId>hive-common</artifactId> </exclusion> <exclusion> <groupId>org.apache.hive</groupId> <artifactId>hive-serde</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.orc</groupId> <artifactId>orc-core</artifactId> <version>${orc.version}</version> <classifier>${orc.classifier}</classifier> <scope>${orc.deps.scope}</scope> <exclusions> <exclusion> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> </exclusion> <exclusion> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-hdfs</artifactId> </exclusion> <exclusion> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client-api</artifactId> </exclusion> <exclusion> <groupId>org.apache.hive</groupId> <artifactId>hive-storage-api</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.orc</groupId> <artifactId>orc-mapreduce</artifactId> <version>${orc.version}</version> <classifier>${orc.classifier}</classifier> <scope>${orc.deps.scope}</scope> <exclusions> <exclusion> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> </exclusion> <exclusion> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-mapreduce-client-core</artifactId> </exclusion> <exclusion> <groupId>org.apache.orc</groupId> <artifactId>orc-core</artifactId> </exclusion> <exclusion> <groupId>org.apache.hive</groupId> <artifactId>hive-storage-api</artifactId> </exclusion> <exclusion> <groupId>com.esotericsoftware</groupId> <artifactId>kryo-shaded</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.parquet</groupId> <artifactId>parquet-column</artifactId> <version>${parquet.version}</version> <scope>${parquet.deps.scope}</scope> </dependency> <dependency> <groupId>org.apache.parquet</groupId> <artifactId>parquet-encoding</artifactId> <version>${parquet.version}</version> <scope>${parquet.test.deps.scope}</scope> <classifier>tests</classifier> </dependency> <dependency> <groupId>org.apache.parquet</groupId> <artifactId>parquet-common</artifactId> <version>${parquet.version}</version> <scope>${parquet.test.deps.scope}</scope> <classifier>tests</classifier> </dependency> <dependency> <groupId>org.apache.parquet</groupId> <artifactId>parquet-column</artifactId> <version>${parquet.version}</version> <scope>${parquet.test.deps.scope}</scope> <classifier>tests</classifier> </dependency> <dependency> <groupId>org.apache.parquet</groupId> <artifactId>parquet-hadoop</artifactId> <version>${parquet.version}</version> <scope>${parquet.deps.scope}</scope> <exclusions> <exclusion> <groupId>commons-pool</groupId> <artifactId>commons-pool</artifactId> </exclusion> <exclusion> <groupId>javax.annotation</groupId> <artifactId>javax.annotation-api</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.parquet</groupId> <artifactId>parquet-avro</artifactId> <version>${parquet.version}</version> <scope>${parquet.test.deps.scope}</scope> </dependency> <dependency> <groupId>org.codehaus.janino</groupId> <artifactId>janino</artifactId> <version>${janino.version}</version> </dependency> <dependency> <groupId>org.codehaus.janino</groupId> <artifactId>commons-compiler</artifactId> <version>${janino.version}</version> </dependency> <dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>${joda.version}</version> </dependency> <dependency> <groupId>org.jodd</groupId> <artifactId>jodd-core</artifactId> <version>${jodd.version}</version> </dependency> <dependency> <groupId>org.datanucleus</groupId> <artifactId>datanucleus-core</artifactId> <version>${datanucleus-core.version}</version> </dependency> <dependency> <groupId>org.apache.thrift</groupId> <artifactId>libthrift</artifactId> <version>${libthrift.version}</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.thrift</groupId> <artifactId>libfb303</artifactId> <version>0.9.3</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.antlr</groupId> <artifactId>antlr4-runtime</artifactId> <version>${antlr4.version}</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-crypto</artifactId> <version>${commons-crypto.version}</version> <exclusions> <exclusion> <groupId>net.java.dev.jna</groupId> <artifactId>jna</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.google.crypto.tink</groupId> <artifactId>tink</artifactId> <version>${tink.version}</version> </dependency> <dependency> <groupId>org.apache.arrow</groupId> <artifactId>arrow-vector</artifactId> <version>${arrow.version}</version> <exclusions> <exclusion> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> </exclusion> <exclusion> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> </exclusion> <exclusion> <groupId>io.netty</groupId> <artifactId>netty-common</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.arrow</groupId> <artifactId>arrow-memory-netty</artifactId> <version>${arrow.version}</version> <exclusions> <exclusion> <groupId>io.netty</groupId> <artifactId>netty-buffer</artifactId> </exclusion> <exclusion> <groupId>io.netty</groupId> <artifactId>netty-common</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.univocity</groupId> <artifactId>univocity-parsers</artifactId> <version>2.9.1</version> </dependency> <dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-storage-api</artifactId> <version>${hive.storage.version}</version> <scope>${hive.storage.scope}</scope> <exclusions> <exclusion> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>commons-cli</groupId> <artifactId>commons-cli</artifactId> <version>${commons-cli.version}</version> </dependency> <dependency> <groupId>dev.ludovic.netlib</groupId> <artifactId>blas</artifactId> <version>${netlib.ludovic.dev.version}</version> </dependency> <dependency> <groupId>dev.ludovic.netlib</groupId> <artifactId>lapack</artifactId> <version>${netlib.ludovic.dev.version}</version> </dependency> <dependency> <groupId>dev.ludovic.netlib</groupId> <artifactId>arpack</artifactId> <version>${netlib.ludovic.dev.version}</version> </dependency> <!-- SDLB dependency management --> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_${scala.minor.version}</artifactId> <version>${spark.version}</version> <scope>${spark.deps.scope}</scope> <exclusions> <!-- Exclude hadoop-client-runtime from spark-core 3.4, as this is a shaded version with relocation. We need the classes with original location for hadoop-azure otherwise there is ClassNotFoundException: org.apache.hadoop.util.WeakReferenceMap from hadoop-Azure AbfsClient. hadoop-client library is not shaded and included below. --> <exclusion> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client-runtime</artifactId> </exclusion> <exclusion> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client-api</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-sql_${scala.minor.version}</artifactId> <version>${spark.version}</version> <scope>${spark.deps.scope}</scope> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-catalyst_${scala.minor.version}</artifactId> <version>${spark.version}</version> <scope>${spark.deps.scope}</scope> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-hive_${scala.minor.version}</artifactId> <version>${spark.version}</version> <scope>${spark.deps.scope}</scope> <exclusions> <exclusion> <groupId>org.apache.orc</groupId> <artifactId>orc-core</artifactId> </exclusion> <exclusion> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> </exclusion> <exclusion> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> </exclusion> <exclusion> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-auth</artifactId> </exclusion> <exclusion> <groupId>commons-net</groupId> <artifactId>commons-net</artifactId> </exclusion> <exclusion> <!-- this is vulnerable, 10 years old, and not really needed --> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> </exclusion> <exclusion> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId> </exclusion> <!-- Exclude hadoop-client-runtime from spark-core 3.4, as this is a shaded version with relocation. We need the classes with original location for hadoop-azure otherwise there is ClassNotFoundException: org.apache.hadoop.util.WeakReferenceMap from hadoop-Azure AbfsClient. hadoop-client library is not shaded and included below. --> <exclusion> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client-runtime</artifactId> </exclusion> <exclusion> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client-api</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.typesafe</groupId> <artifactId>config</artifactId> <version>${typesafe.config.version}</version> </dependency> <dependency> <groupId>com.github.kxbmap</groupId> <artifactId>configs_${scala.minor.version}</artifactId> <version>${kxbmap.configs.version}</version> </dependency> <dependency> <groupId>org.scala-lang.modules</groupId> <artifactId>scala-collection-compat_${scala.minor.version}</artifactId> <version>2.11.0</version> </dependency> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-annotations</artifactId> <version>1.5.22</version> </dependency> <dependency> <groupId>org.antlr</groupId> <artifactId>ST4</artifactId> <version>4.0.4</version> </dependency> <dependency> <groupId>org.antlr</groupId> <artifactId>antlr-runtime</artifactId> <version>3.4</version> </dependency> <dependency> <groupId>io.smartdatalake</groupId> <artifactId>spark-extensions_${scala.minor.version}</artifactId> <version>${spark-extensions.version}</version> </dependency> <dependency> <groupId>org.json4s</groupId> <artifactId>json4s-ext_${scala.minor.version}</artifactId> <version>${json4s.version}</version> </dependency> <dependency> <groupId>io.delta</groupId> <artifactId>delta-spark_${scala.minor.version}</artifactId> <version>${delta.version}</version> </dependency> <!-- TEST dependencies --> <dependency> <groupId>org.scalatest</groupId> <artifactId>scalatest_${scala.minor.version}</artifactId> <version>${scalatest.test.version}</version> <scope>test</scope> <exclusions> <exclusion> <groupId>org.scala-lang.modules</groupId> <artifactId>scala-xml_${scala.minor.version}</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.scalactic</groupId> <artifactId>scalactic_${scala.minor.version}</artifactId> <version>${scalatest.test.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.scalacheck</groupId> <artifactId>scalacheck_${scala.minor.version}</artifactId> <version>1.14.3</version> <scope>test</scope> </dependency> <!-- Vulnerable Dependencies Upgrades --> <dependency> <groupId>com.fasterxml.woodstox</groupId> <artifactId>woodstox-core</artifactId> <version>6.5.1</version> </dependency> <dependency> <groupId>org.yaml</groupId> <artifactId>snakeyaml</artifactId> <version>2.0</version> </dependency> <dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20231013</version> </dependency> <dependency> <groupId>org.codehaus.jettison</groupId> <artifactId>jettison</artifactId> <version>1.5.4</version> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>2.2.220</version> </dependency> <dependency> <groupId>org.ow2.asm</groupId> <artifactId>asm</artifactId> <version>${asm.version}</version> </dependency> <dependency> <groupId>org.ow2.asm</groupId> <artifactId>asm-commons</artifactId> <version>${asm.version}</version> </dependency> </dependencies> </dependencyManagement> </project>