| <?xml version="1.0" encoding="UTF-8" standalone="no"?> |
| <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.onetable</groupId> |
| <artifactId>onetable</artifactId> |
| <name>onetable</name> |
| <version>0.1.0-SNAPSHOT</version> |
| <packaging>pom</packaging> |
| |
| <modules> |
| <module>api</module> |
| <module>core</module> |
| <module>utilities</module> |
| <module>hudi-support</module> |
| </modules> |
| |
| <properties> |
| <java.version>8</java.version> |
| <avro.version>1.11.3</avro.version> |
| <log4j.version>2.17.2</log4j.version> |
| <junit.version>5.9.0</junit.version> |
| <lombok.version>1.18.30</lombok.version> |
| <hudi.version>0.14.0</hudi.version> |
| <parquet.version>1.12.2</parquet.version> |
| <scala.version>2.12.10</scala.version> |
| <scala.version.prefix>2.12</scala.version.prefix> |
| <spark.version>3.2.1</spark.version> |
| <spark.version.prefix>3.2</spark.version.prefix> |
| <iceberg.version>1.3.1</iceberg.version> |
| <delta.version>2.0.2</delta.version> |
| <jackson.version>2.14.2</jackson.version> |
| <test.plugin.version>2.22.2</test.plugin.version> |
| <spotless.version>2.27.2</spotless.version> |
| <google.java.format.version>1.8</google.java.format.version> |
| <maven-enforcer-plugin.version>3.1.0</maven-enforcer-plugin.version> |
| <delta.standalone.version>0.5.0</delta.standalone.version> |
| <maven-compiler-plugin.version>3.10.1</maven-compiler-plugin.version> |
| <maven-shade-plugin.version>3.4.0</maven-shade-plugin.version> |
| <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
| <!-- Test properties --> |
| <skipTests>false</skipTests> |
| <skipUTs>${skipTests}</skipUTs> |
| <skipITs>${skipTests}</skipITs> |
| </properties> |
| |
| <dependencies> |
| <dependency> |
| <groupId>org.projectlombok</groupId> |
| <artifactId>lombok</artifactId> |
| <version>${lombok.version}</version> |
| </dependency> |
| </dependencies> |
| |
| <dependencyManagement> |
| <dependencies> |
| <dependency> |
| <groupId>io.onetable</groupId> |
| <artifactId>onetable-api</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>io.onetable</groupId> |
| <artifactId>onetable-core</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>io.onetable</groupId> |
| <artifactId>hudi-utils</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| |
| <!-- Scala --> |
| <dependency> |
| <groupId>org.scala-lang</groupId> |
| <artifactId>scala-library</artifactId> |
| <version>${scala.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.scala-lang.modules</groupId> |
| <artifactId>scala-collection-compat_${scala.version.prefix}</artifactId> |
| <version>2.8.1</version> |
| </dependency> |
| |
| <!-- Avro --> |
| <dependency> |
| <groupId>org.apache.avro</groupId> |
| <artifactId>avro</artifactId> |
| <version>${avro.version}</version> |
| </dependency> |
| |
| <!-- Parquet --> |
| <dependency> |
| <groupId>org.apache.parquet</groupId> |
| <artifactId>parquet-avro</artifactId> |
| <version>${parquet.version}</version> |
| </dependency> |
| |
| <!-- Logging --> |
| <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> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-1.2-api</artifactId> |
| <version>${log4j.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-slf4j-impl</artifactId> |
| <version>${log4j.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-1.2-api</artifactId> |
| <version>${log4j.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-api</artifactId> |
| <version>2.0.9</version> |
| </dependency> |
| |
| <!-- Lombok --> |
| <dependency> |
| <groupId>org.projectlombok</groupId> |
| <artifactId>lombok</artifactId> |
| <version>1.18.24</version> |
| <scope>compile</scope> |
| </dependency> |
| |
| <!-- Hudi --> |
| <dependency> |
| <groupId>org.apache.hudi</groupId> |
| <artifactId>hudi-common</artifactId> |
| <version>${hudi.version}</version> |
| <exclusions> |
| <exclusion> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-log4j12</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>log4j</groupId> |
| <artifactId>log4j</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hudi</groupId> |
| <artifactId>hudi-client-common</artifactId> |
| <version>${hudi.version}</version> |
| <exclusions> |
| <exclusion> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-log4j12</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>log4j</groupId> |
| <artifactId>log4j</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hudi</groupId> |
| <artifactId>hudi-utilities_2.12</artifactId> |
| <version>${hudi.version}</version> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hudi</groupId> |
| <artifactId>hudi-spark${spark.version.prefix}-bundle_${scala.version.prefix}</artifactId> |
| <version>${hudi.version}</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hudi</groupId> |
| <artifactId>hudi-common</artifactId> |
| <version>${hudi.version}</version> |
| <classifier>tests</classifier> |
| <type>test-jar</type> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hudi</groupId> |
| <artifactId>hudi-java-client</artifactId> |
| <version>${hudi.version}</version> |
| </dependency> |
| |
| <!-- Iceberg --> |
| <dependency> |
| <groupId>org.apache.iceberg</groupId> |
| <artifactId>iceberg-core</artifactId> |
| <version>${iceberg.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.iceberg</groupId> |
| <artifactId>iceberg-api</artifactId> |
| <version>${iceberg.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.iceberg</groupId> |
| <artifactId>iceberg-parquet</artifactId> |
| <version>${iceberg.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.iceberg</groupId> |
| <artifactId>iceberg-spark-runtime-${spark.version.prefix}_${scala.version.prefix}</artifactId> |
| <version>${iceberg.version}</version> |
| <scope>test</scope> |
| </dependency> |
| |
| <!-- Delta --> |
| <dependency> |
| <groupId>io.delta</groupId> |
| <artifactId>delta-core_${scala.version.prefix}</artifactId> |
| <version>${delta.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>io.delta</groupId> |
| <artifactId>delta-standalone_${scala.version.prefix}</artifactId> |
| <version>${delta.standalone.version}</version> |
| <scope>test</scope> |
| </dependency> |
| |
| <!-- Spark --> |
| <dependency> |
| <groupId>org.apache.spark</groupId> |
| <artifactId>spark-core_${scala.version.prefix}</artifactId> |
| <version>${spark.version}</version> |
| <exclusions> |
| <exclusion> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-log4j12</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>log4j</groupId> |
| <artifactId>log4j</artifactId> |
| </exclusion> |
| </exclusions> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.spark</groupId> |
| <artifactId>spark-sql_${scala.version.prefix}</artifactId> |
| <version>${spark.version}</version> |
| <scope>provided</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>commons-cli</groupId> |
| <artifactId>commons-cli</artifactId> |
| <version>1.5.0</version> |
| </dependency> |
| |
| <!-- Hadoop --> |
| <dependency> |
| <groupId>org.apache.hadoop</groupId> |
| <artifactId>hadoop-common</artifactId> |
| <version>3.3.6</version> |
| <scope>provided</scope> |
| <exclusions> |
| <exclusion> |
| <groupId>org.eclipse.jetty</groupId> |
| <artifactId>*</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.hadoop</groupId> |
| <artifactId>hadoop-aws</artifactId> |
| <version>3.2.2</version> |
| <scope>runtime</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hadoop</groupId> |
| <artifactId>hadoop-azure</artifactId> |
| <version>3.2.2</version> |
| <scope>runtime</scope> |
| </dependency> |
| <dependency> |
| <groupId>com.amazonaws</groupId> |
| <artifactId>aws-java-sdk-bundle</artifactId> |
| <version>1.12.328</version> |
| <scope>runtime</scope> |
| </dependency> |
| <dependency> |
| <groupId>com.google.cloud.bigdataoss</groupId> |
| <artifactId>gcs-connector</artifactId> |
| <version>hadoop3-2.2.8</version> |
| <scope>runtime</scope> |
| </dependency> |
| |
| <!-- Hive --> |
| <dependency> |
| <groupId>org.apache.hive</groupId> |
| <artifactId>hive-common</artifactId> |
| <version>3.1.3</version> |
| <exclusions> |
| <exclusion> |
| <groupId>log4j</groupId> |
| <artifactId>log4j</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| |
| <!-- Protobuf --> |
| <dependency> |
| <groupId>com.google.protobuf</groupId> |
| <artifactId>protobuf-java</artifactId> |
| <version>3.21.9</version> |
| </dependency> |
| <dependency> |
| <groupId>com.google.protobuf</groupId> |
| <artifactId>protobuf-java-util</artifactId> |
| <version>3.21.9</version> |
| </dependency> |
| |
| <!-- Guava --> |
| <dependency> |
| <groupId>com.google.guava</groupId> |
| <artifactId>guava</artifactId> |
| <version>32.1.3-jre</version> |
| </dependency> |
| |
| <!-- Kryo --> |
| <dependency> |
| <groupId>com.esotericsoftware</groupId> |
| <artifactId>kryo</artifactId> |
| <version>4.0.2</version> |
| <scope>test</scope> |
| </dependency> |
| |
| <!-- JUnit and Testing --> |
| <dependency> |
| <groupId>org.junit.jupiter</groupId> |
| <artifactId>junit-jupiter-api</artifactId> |
| <version>${junit.version}</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.junit.jupiter</groupId> |
| <artifactId>junit-jupiter-params</artifactId> |
| <version>${junit.version}</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.junit.jupiter</groupId> |
| <artifactId>junit-jupiter-engine</artifactId> |
| <version>${junit.version}</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.junit.platform</groupId> |
| <artifactId>junit-platform-runner</artifactId> |
| <version>1.8.2</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.mockito</groupId> |
| <artifactId>mockito-core</artifactId> |
| <version>4.8.0</version> |
| <scope>test</scope> |
| </dependency> |
| |
| <!-- Jackson --> |
| <dependency> |
| <groupId>com.fasterxml.jackson.core</groupId> |
| <artifactId>jackson-databind</artifactId> |
| <version>${jackson.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.fasterxml.jackson.core</groupId> |
| <artifactId>jackson-core</artifactId> |
| <version>${jackson.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.fasterxml.jackson.datatype</groupId> |
| <artifactId>jackson-datatype-jsr310</artifactId> |
| <version>${jackson.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.fasterxml.jackson.core</groupId> |
| <artifactId>jackson-annotations</artifactId> |
| <version>${jackson.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.fasterxml.jackson.dataformat</groupId> |
| <artifactId>jackson-dataformat-yaml</artifactId> |
| <version>${jackson.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.fasterxml.jackson.module</groupId> |
| <artifactId>jackson-module-scala_2.12</artifactId> |
| <version>${jackson.version}</version> |
| </dependency> |
| |
| <!-- Misc. --> |
| <dependency> |
| <groupId>org.glassfish</groupId> |
| <artifactId>javax.el</artifactId> |
| <version>3.0.0</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-lang3</artifactId> |
| <version>3.12.0</version> |
| </dependency> |
| <dependency> |
| <groupId>io.netty</groupId> |
| <artifactId>netty-all</artifactId> |
| <version>4.1.74.Final</version> |
| </dependency> |
| </dependencies> |
| </dependencyManagement> |
| |
| <build> |
| <pluginManagement> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-shade-plugin</artifactId> |
| <version>${maven-shade-plugin.version}</version> |
| <executions> |
| <execution> |
| <phase>package</phase> |
| <goals> |
| <goal>shade</goal> |
| </goals> |
| <configuration> |
| <createDependencyReducedPom>false</createDependencyReducedPom> |
| <filters> |
| <filter> |
| <artifact>*:*</artifact> |
| <excludes> |
| <exclude>META-INF/*.SF</exclude> |
| <exclude>META-INF/*.DSA</exclude> |
| <exclude>META-INF/*.RSA</exclude> |
| <exclude>**/Log4j2Plugins.dat</exclude> |
| </excludes> |
| </filter> |
| </filters> |
| <shadedArtifactAttached>true</shadedArtifactAttached> |
| <shadedClassifierName>bundled</shadedClassifierName> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </pluginManagement> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-enforcer-plugin</artifactId> |
| <version>${maven-enforcer-plugin.version}</version> |
| <executions> |
| <execution> |
| <id>enforce-logging</id> |
| <goals> |
| <goal>enforce</goal> |
| </goals> |
| <configuration> |
| <rules> |
| <bannedDependencies> |
| <excludes> |
| <exclude>org.slf4j:slf4j-log4j12</exclude> |
| <exclude>log4j:log4j</exclude> |
| </excludes> |
| </bannedDependencies> |
| </rules> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-compiler-plugin</artifactId> |
| <version>${maven-compiler-plugin.version}</version> |
| <configuration> |
| <release>${java.version}</release> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <version>${test.plugin.version}</version> |
| <configuration> |
| <skip>${skipUTs}</skip> |
| <redirectTestOutputToFile>true</redirectTestOutputToFile> |
| <trimStackTrace>false</trimStackTrace> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-failsafe-plugin</artifactId> |
| <version>${test.plugin.version}</version> |
| <executions> |
| <execution> |
| <goals> |
| <goal>integration-test</goal> |
| <goal>verify</goal> |
| </goals> |
| </execution> |
| </executions> |
| <configuration> |
| <redirectTestOutputToFile>true</redirectTestOutputToFile> |
| <skip>${skipITs}</skip> |
| <reuseForks>false</reuseForks> |
| <forkCount>6</forkCount> |
| <trimStackTrace>false</trimStackTrace> |
| <argLine>-Xmx1024m</argLine> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>com.diffplug.spotless</groupId> |
| <artifactId>spotless-maven-plugin</artifactId> |
| <version>${spotless.version}</version> |
| <configuration> |
| <java> |
| <googleJavaFormat> |
| <version>${google.java.format.version}</version> |
| <style>GOOGLE</style> |
| <groupArtifact>com.google.googlejavaformat:google-java-format</groupArtifact> |
| </googleJavaFormat> |
| <importOrder> |
| <order>java,javax,org,org.apache.hudi,org.apache.iceberg,org.apache.spark.sql.delta,com,io.onetable</order> |
| </importOrder> |
| <removeUnusedImports/> |
| <licenseHeader> |
| <file>style/license-header</file> |
| </licenseHeader> |
| </java> |
| </configuration> |
| <executions> |
| <execution> |
| <goals> |
| <goal>check</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| |
| <distributionManagement> |
| <repository> |
| <id>github</id> |
| <name>GitHub Packages</name> |
| <url>https://maven.pkg.github.com/onetable-io/onetable</url> |
| </repository> |
| </distributionManagement> |
| </project> |