blob: 823ba1880e04f4b9f950e30b297e598bd33fa301 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
//
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.kudu</groupId>
<artifactId>kudu-parent</artifactId>
<version>1.8.0</version>
<packaging>pom</packaging>
<!-- inherit from the ASF POM for distribution management -->
<parent>
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
<version>18</version>
</parent>
<name>Kudu</name>
<description>
Kudu.
</description>
<!-- Properties Management -->
<properties>
<!-- Platform encoding override -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- Maven plugins -->
<clojure-maven-plugin.version>1.8.1</clojure-maven-plugin.version>
<maven-antrun-plugin.version>1.8</maven-antrun-plugin.version>
<maven-assembly-plugin.version>3.1.0</maven-assembly-plugin.version>
<maven-checkstyle-plugin.version>3.0.0</maven-checkstyle-plugin.version>
<maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
<maven-enforcer-plugin.version>1.4.1</maven-enforcer-plugin.version>
<!-- Note: Bumping maven-failsafe-plugin to 2.19+ (2.21) breaks the integration tests due to shading issues -->
<maven-failsafe-plugin.version>2.18</maven-failsafe-plugin.version>
<maven-os-plugin.version>1.5.0.Final</maven-os-plugin.version>
<maven-jar-plugin.version>3.1.0</maven-jar-plugin.version>
<maven-javadoc-plugin.version>3.0.0</maven-javadoc-plugin.version>
<maven-protoc-plugin.version>0.5.1</maven-protoc-plugin.version>
<maven-shade-plugin.version>3.1.1</maven-shade-plugin.version>
<maven-surefire-plugin.version>2.21.0</maven-surefire-plugin.version>
<scala-maven-plugin.version>3.3.2</scala-maven-plugin.version>
<mvn-scalafmt-plugin.version>0.7_1.4.0</mvn-scalafmt-plugin.version>
<!-- Library dependencies -->
<async.version>1.4.1</async.version>
<avro.version>1.8.2</avro.version>
<clojure.tools.version>0.3.5</clojure.tools.version>
<clojure.version>1.9.0</clojure.version>
<commons-io.version>2.6</commons-io.version>
<flume.version>1.8.0</flume.version>
<guava.version>26.0-android</guava.version>
<hadoop.version>3.1.1</hadoop.version>
<hamcrest-core.version>1.3</hamcrest-core.version>
<hive.version>2.3.3</hive.version>
<jepsen.version>0.1.5</jepsen.version>
<jsr305.version>3.0.2</jsr305.version>
<junit.version>4.12</junit.version>
<log4j.version>1.2.17</log4j.version>
<mockito-core.version>2.22.0</mockito-core.version>
<murmur.version>1.0.0</murmur.version>
<netty.version>3.10.6.Final</netty.version>
<parquet.version>1.10.0</parquet.version>
<protobuf.version>3.6.1</protobuf.version>
<scopt.version>3.7.0</scopt.version>
<slf4j.version>1.7.25</slf4j.version>
<sparkavro.version>4.0.0</sparkavro.version>
<yetus.version>0.8.0</yetus.version>
<!-- Scala Library dependencies -->
<scala.binary.version>2.11</scala.binary.version>
<scala.version>2.11.12</scala.version>
<scalatest.version>3.0.5</scalatest.version>
<spark.version>2.3.2</spark.version>
<spark.version.label>spark2</spark.version.label>
<!-- Misc variables -->
<testdata.dir>${project.build.directory}/testdata</testdata.dir>
<testArgLine>-enableassertions -Xmx1900m
-Djava.security.egd=file:/dev/urandom -Djava.net.preferIPv4Stack=true
-Djava.awt.headless=true
</testArgLine>
</properties>
<modules>
<module>kudu-backup</module>
<module>kudu-client-tools</module>
<module>kudu-client</module>
<module>kudu-flume-sink</module>
<module>kudu-hive</module>
<module>kudu-mapreduce</module>
<module>kudu-spark-tools</module>
<module>kudu-spark</module>
</modules>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>${maven-enforcer-plugin.version}</version>
<configuration>
<rules>
<requireMavenVersion>
<version>[3.0.2,)</version>
</requireMavenVersion>
<requireJavaVersion>
<version>[1.7,)</version>
</requireJavaVersion>
</rules>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>${maven-failsafe-plugin.version}</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
<configuration>
<failIfNoTests>false</failIfNoTests>
<reuseForks>false</reuseForks>
<redirectTestOutputToFile>true</redirectTestOutputToFile>
<argLine>${testArgLine}</argLine>
<systemPropertyVariables>
<kuduBinDir>${project.basedir}/../../build/latest/bin</kuduBinDir>
</systemPropertyVariables>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<failIfNoTests>false</failIfNoTests>
<reuseForks>false</reuseForks>
<redirectTestOutputToFile>true</redirectTestOutputToFile>
<argLine>${testArgLine}</argLine>
<systemPropertyVariables>
<kuduBinDir>${project.basedir}/../../build/latest/bin</kuduBinDir>
</systemPropertyVariables>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>${maven-shade-plugin.version}</version>
<configuration>
<shadeTestJar>true</shadeTestJar>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.antipathy</groupId>
<artifactId>mvn-scalafmt</artifactId>
<version>${mvn-scalafmt-plugin.version}</version>
<configuration>
<configLocation>.scalafmt.conf</configLocation>
</configuration>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>format</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<inherited>false</inherited>
<executions>
<execution>
<id>clean</id>
<goals>
<goal>enforce</goal>
</goals>
<phase>pre-clean</phase>
</execution>
<execution>
<id>default</id>
<goals>
<goal>enforce</goal>
</goals>
<phase>validate</phase>
</execution>
<execution>
<id>site</id>
<goals>
<goal>enforce</goal>
</goals>
<phase>pre-site</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${maven-jar-plugin.version}</version>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>${maven-antrun-plugin.version}</version>
<executions>
<execution>
<phase>test-compile</phase>
<configuration>
<target>
<delete dir="${testdata.dir}"/>
<mkdir dir="${testdata.dir}"/>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven-javadoc-plugin.version}</version>
<configuration>
<maxmemory>2048m</maxmemory>
<notimestamp>true</notimestamp>
<doclet>
org.apache.yetus.audience.tools.IncludePublicAnnotationsStandardDoclet
</doclet>
<docletArtifact>
<groupId>org.apache.yetus</groupId>
<artifactId>audience-annotations-jdiff</artifactId>
<version>${yetus.version}</version>
</docletArtifact>
<name>User API</name>
<description>The Kudu Application Programmer's API</description>
<excludePackageNames>
com.google:org.apache.kudu.cfile:org.apache.kudu.consensus:org.apache.kudu.log:org.apache.kudu.master:org.apache.kudu.rpc:org.apache.kudu.server:org.apache.kudu.tablet:org.apache.kudu.tserver:org.apache.kudu.hive
</excludePackageNames>
<includeDependencySources>false</includeDependencySources>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>${maven-checkstyle-plugin.version}</version>
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>6.19</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>validate</id>
<phase>validate</phase>
<configuration>
<configLocation>kudu_style.xml</configLocation>
<suppressionsLocation>checkstyle_suppressions.xml</suppressionsLocation>
<suppressionsFileExpression>checkstyle.suppressions.file</suppressionsFileExpression>
<encoding>UTF-8</encoding>
<consoleOutput>true</consoleOutput>
<failsOnError>false</failsOnError>
</configuration>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<!-- Enforce that all of our code uses Java 7 and not Java 8 APIs. -->
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-maven-plugin</artifactId>
<version>1.16</version>
<configuration>
<signature>
<groupId>org.codehaus.mojo.signature</groupId>
<artifactId>java17</artifactId>
<version>1.0</version>
</signature>
</configuration>
<executions>
<execution>
<id>check-java7-apis</id>
<phase>process-classes</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<!-- Build the jepsen test for Kudu.
Disabled by default since Java 8 and maven >= 3.3.6 is required to
build the kudu-jepsen artifact. To enable, add '-Pjepsen'
to the maven command line. -->
<profile>
<id>jepsen</id>
<modules>
<module>kudu-jepsen</module>
</modules>
</profile>
</profiles>
</project>