blob: 4b4d12431a4155d97329421888b5f2a829b702fb [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.4.0</version>
<packaging>pom</packaging>
<!-- inherit from the ASF POM for distribution management -->
<parent>
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
<version>18</version>
<relativePath/>
</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 -->
<maven-antrun-plugin.version>1.7</maven-antrun-plugin.version>
<maven-assembly-plugin.version>2.6</maven-assembly-plugin.version>
<maven-enforcer-plugin.version>1.4</maven-enforcer-plugin.version>
<maven-failsafe-plugin.version>2.18</maven-failsafe-plugin.version>
<maven-os-plugin.version>1.5.0.Final</maven-os-plugin.version>
<maven-protoc-plugin.version>0.5.0</maven-protoc-plugin.version>
<maven-shade-plugin.version>2.4</maven-shade-plugin.version>
<maven-surefire-plugin.version>2.18</maven-surefire-plugin.version>
<schema-validator-maven-plugin.version>5.5.3</schema-validator-maven-plugin.version>
<!-- Library dependencies -->
<async.version>1.4.1</async.version>
<commons-io.version>2.4</commons-io.version>
<guava.version>18.0</guava.version>
<hadoop.version>2.7.2</hadoop.version>
<jsr305.version>3.0.1</jsr305.version>
<hamcrest-core.version>1.3</hamcrest-core.version>
<junit.version>4.11</junit.version>
<log4j.version>1.2.17</log4j.version>
<mockito-core.version>1.9.0</mockito-core.version>
<murmur.version>1.0.0</murmur.version>
<netty.version>3.10.5.Final</netty.version>
<protobuf.version>3.3.0</protobuf.version>
<slf4j.version>1.7.12</slf4j.version>
<!-- Scala Library dependencies -->
<spark1.version>1.6.1</spark1.version>
<spark2.version>2.0.1</spark2.version>
<scala-2.10.version>2.10.4</scala-2.10.version>
<scala-2.11.version>2.11.6</scala-2.11.version>
<!-- Misc variables -->
<testdata.dir>target/testdata</testdata.dir>
<testArgLine>-enableassertions -Xmx1900m
-Djava.security.egd=file:/dev/./urandom -Djava.net.preferIPv4Stack=true
-Djava.awt.headless=true</testArgLine>
</properties>
<modules>
<module>interface-annotations</module>
<module>kudu-client</module>
<module>kudu-client-tools</module>
<module>kudu-mapreduce</module>
<module>kudu-flume-sink</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>
</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>
</configuration>
</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>2.3.2</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>2.3.2</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>2.10.3</version>
<configuration>
<maxmemory>2048m</maxmemory>
<notimestamp>true</notimestamp>
<doclet>
org.apache.kudu.annotations.tools.IncludePublicAnnotationsStandardDoclet
</doclet>
<docletArtifact>
<groupId>org.apache.kudu</groupId>
<artifactId>interface-annotations</artifactId>
<version>${project.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
</excludePackageNames>
<includeDependencySources>false</includeDependencySources>
<dependencySourceIncludes>
<dependencySourceInclude>
org.apache.kudu:interface-annotations
</dependencySourceInclude>
</dependencySourceIncludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.17</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>
</plugins>
</build>
<pluginRepositories>
<!-- For schema-validator-maven-plugin -->
<pluginRepository>
<id>schema-validator-maven-plugin</id>
<url>https://repository.cloudera.com/artifactory/cloudera-repos</url>
<name>Cloudera Plugin Repositories</name>
</pluginRepository>
</pluginRepositories>
<repositories>
<repository>
<id>cdh.repo</id>
<url>https://repository.cloudera.com/artifactory/cloudera-repos</url>
<name>Cloudera Repositories</name>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<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>
<!-- Manage Scala and Spark versions.
Kudu supports integration with Spark2/Scala2.11 *and* Spark1/Scala2.10
with the same module, so we use profiles to control which mode to compile in. -->
<profile>
<id>spark2_2.11</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<spark.version>${spark2.version}</spark.version>
<spark.version.label>spark2</spark.version.label>
<scala.version>${scala-2.11.version}</scala.version>
<scala.binary.version>2.11</scala.binary.version>
<kudu-spark.compat.src>src/main/spark2</kudu-spark.compat.src>
</properties>
<modules>
<module>kudu-spark</module>
<!-- kudu-spark-tools is only compatible with Spark2 -->
<module>kudu-spark-tools</module>
</modules>
</profile>
<profile>
<id>spark_2.10</id>
<properties>
<spark.version>${spark1.version}</spark.version>
<spark.version.label>spark</spark.version.label>
<scala.version>${scala-2.10.version}</scala.version>
<scala.binary.version>2.10</scala.binary.version>
<kudu-spark.compat.src>src/main/spark1</kudu-spark.compat.src>
</properties>
<modules>
<module>kudu-spark</module>
</modules>
</profile>
</profiles>
</project>