blob: f83828ed675a1d5c6e2b79d4e7c95ce5bc972901 [file] [log] [blame]
<!--
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.hivemall</groupId>
<artifactId>hivemall</artifactId>
<version>0.5.0-incubating-rc1</version>
<parent>
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
<version>18</version>
</parent>
<name>Apache Hivemall</name>
<description>Scalable Machine Learning Library for Apache Hive, Apache Spark, and Apache Pig</description>
<url>http://hivemall.incubator.apache.org/</url>
<inceptionYear>2013</inceptionYear>
<organization>
<name>Apache Hivemall</name>
<url>http://hivemall.incubator.apache.org/</url>
</organization>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<scm>
<url>https://git-wip-us.apache.org/repos/asf/incubator-hivemall.git</url>
<connection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-hivemall.git</connection>
<developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-hivemall.git</developerConnection>
<tag>v0.5.0-rc1</tag>
</scm>
<mailingLists>
<mailingList>
<name>user</name>
<post>user@hivemall.incubator.apache.org</post>
<subscribe>user-subscribe@hivemall.incubator.apache.org</subscribe>
<unsubscribe>user-unsubscribe@hivemall.incubator.apache.org</unsubscribe>
<archive>https://lists.apache.org/list.html?user@hivemall.apache.org</archive>
<otherArchives>
<otherArchive>http://markmail.org/search/?q=list%3Aorg.apache.hivemall.user</otherArchive>
</otherArchives>
</mailingList>
<mailingList>
<name>dev</name>
<post>dev@hivemall.incubator.apache.org</post>
<subscribe>dev-subscribe@hivemall.incubator.apache.org</subscribe>
<unsubscribe>dev-unsubscribe@hivemall.incubator.apache.org</unsubscribe>
<archive>https://lists.apache.org/list.html?dev@hivemall.apache.org</archive>
<otherArchives>
<otherArchive>http://markmail.org/search/?q=list%3Aorg.apache.hivemall.dev</otherArchive>
</otherArchives>
</mailingList>
<mailingList>
<name>commits</name>
<post>commits@hivemall.incubator.apache.org</post>
<subscribe>commits-subscribe@hivemall.incubator.apache.org</subscribe>
<unsubscribe>commits-unsubscribe@hivemall.incubator.apache.org</unsubscribe>
<archive>https://lists.apache.org/list.html?commits@hivemall.apache.org</archive>
<otherArchives>
<otherArchive>http://markmail.org/search/?q=list%3Aorg.apache.hivemall.commits</otherArchive>
</otherArchives>
</mailingList>
<mailingList>
<name>issues</name>
<post>issues@hivemall.incubator.apache.org</post>
<subscribe>issues-subscribe@hivemall.incubator.apache.org</subscribe>
<unsubscribe>issues-unsubscribe@hivemall.incubator.apache.org</unsubscribe>
<archive>https://lists.apache.org/list.html?issues@hivemall.apache.org</archive>
<otherArchives>
<otherArchive>http://markmail.org/search/?q=list%3Aorg.apache.hivemall.issues</otherArchive>
</otherArchives>
</mailingList>
</mailingLists>
<developers>
<!-- Initial Committers -->
<developer>
<id>myui</id>
<name>Makoto Yui</name>
<email>myui[at]apache.org</email>
<url>http://myui.github.io/</url>
<organization>Treasure Data, Inc.</organization>
<organizationUrl>https://www.treasuredata.com/</organizationUrl>
<roles>
<role>PPMC Member</role>
</roles>
<timezone>+9</timezone>
</developer>
<developer>
<id>maropu</id>
<name>Takashi Yamamuro</name>
<email>yamamuro[at]apache.org</email>
<url>https://github.com/maropu/</url>
<organization>Nippon Telegraph and Telephone Corporation (NTT)</organization>
<organizationUrl>http://www.ntt.co.jp/</organizationUrl>
<roles>
<role>PPMC Member</role>
</roles>
<timezone>+9</timezone>
</developer>
<developer>
<id>daijy</id>
<name>Daniel Dai</name>
<email>daijy[at]apache.org</email>
<url>http://people.apache.org/~daijy/</url>
<organization>Hortonworks Inc.</organization>
<organizationUrl>http://hortonworks.com/</organizationUrl>
<roles>
<role>PPMC Member</role>
<role>Mentor</role>
</roles>
<timezone>-8</timezone>
</developer>
<developer>
<id>lewuathe</id>
<name>Kai Sasaki</name>
<email>lewuathe[at]apache.org</email>
<url>http://www.lewuathe.com/</url>
<organization>Treasure Data, Inc.</organization>
<organizationUrl>https://www.treasuredata.com/</organizationUrl>
<roles>
<role>PPMC Member</role>
</roles>
<timezone>+9</timezone>
</developer>
<developer>
<id>ozawa</id>
<name>Tsuyoshi Ozawa</name>
<email>ozawa[at]apache.org</email>
<url>https://people.apache.org/~ozawa/</url>
<organization>Nippon Telegraph and Telephone Corporation (NTT)</organization>
<organizationUrl>http://www.ntt.co.jp/</organizationUrl>
<roles>
<role>PPMC Member</role>
</roles>
<timezone>+9</timezone>
</developer>
<developer>
<id>takuti</id>
<name>Takuya Kitazawa</name>
<email>takuti[at]apache.org</email>
<url>https://github.com/takuti</url>
<organization>Treasure Data, Inc.</organization>
<organizationUrl>https://www.treasuredata.com/</organizationUrl>
<roles>
<role>PPMC Member</role>
</roles>
<timezone>+9</timezone>
</developer>
<developer>
<id>ri</id>
<name>Ryu-ichi Ito</name>
<email>ri[at]apache.org</email>
<url>https://github.com/amaya382</url>
<organization>Osaka University</organization>
<organizationUrl>http://www.osaka-u.ac.jp/</organizationUrl>
<roles>
<role>Committer</role>
</roles>
<timezone>+9</timezone>
</developer>
<developer>
<id>nzw</id>
<name>Kento Nozawa</name>
<email>nzw[at]apache.org</email>
<url>http://nzw0301.github.io/</url>
<organization>Tsukuba University</organization>
<organizationUrl>http://www.tsukuba.ac.jp/</organizationUrl>
<roles>
<role>Committer</role>
</roles>
<timezone>+9</timezone>
</developer>
<!-- Project mentors -->
<developer>
<id>rvs</id>
<name>Roman Shaposhnik</name>
<email>rvs[at]apache.org</email>
<url>http://github.com/rvs</url>
<organization>Pivotal Inc.</organization>
<organizationUrl>https://pivotal.io/</organizationUrl>
<roles>
<role>Champion</role>
</roles>
</developer>
<developer>
<id>rxin</id>
<name>Reynold Xin</name>
<email>rxin[at]databricks.com</email>
<url>http://rxin.org</url>
<organization>Databricks Inc.</organization>
<organizationUrl>https://databricks.com/</organizationUrl>
<roles>
<role>Mentor</role>
</roles>
</developer>
<developer>
<id>weimer</id>
<name>Markus Weimer</name>
<email>markus[at]weimo.de</email>
<url>http://www.markusweimer.com/</url>
<organization>Microsoft Corporation</organization>
<organizationUrl>https://www.microsoft.com/</organizationUrl>
<roles>
<role>Mentor</role>
</roles>
</developer>
<developer>
<id>meng</id>
<name>Xiangrui Meng</name>
<email>meng[at]databricks.com</email>
<url>https://github.com/mengxr</url>
<organization>Databricks Inc.</organization>
<organizationUrl>https://databricks.com/</organizationUrl>
<roles>
<role>Mentor</role>
</roles>
</developer>
</developers>
<packaging>pom</packaging>
<modules>
<module>core</module>
<module>nlp</module>
<module>xgboost</module>
<module>mixserv</module>
</modules>
<properties>
<java.source.version>1.7</java.source.version>
<java.target.version>1.7</java.target.version>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<scala.version>2.11.8</scala.version>
<scala.binary.version>2.11</scala.binary.version>
<maven.build.timestamp.format>yyyy</maven.build.timestamp.format>
<build.year>${maven.build.timestamp}</build.year>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<protobuf.version>2.5.0</protobuf.version>
<protoc.path>${env.PROTOC_PATH}</protoc.path>
<hadoop.version>2.4.0</hadoop.version>
<hive.version>0.13.0</hive.version>
<guava.version>11.0.2</guava.version>
<junit.version>4.12</junit.version>
<dependency.locations.enabled>false</dependency.locations.enabled>
<main.basedir>${project.basedir}</main.basedir>
<maven-enforcer-plugin.version>3.0.0-M1</maven-enforcer-plugin.version>
<surefire.version>2.19.1</surefire.version>
</properties>
<distributionManagement>
<repository>
<id>apache.releases.https</id>
<name>Apache Release Distribution Repository</name>
<url>https://repository.apache.org/service/local/staging/deploy/maven2</url>
</repository>
<snapshotRepository>
<id>apache.snapshots.https</id>
<name>Apache Development Snapshot Repository</name>
<url>https://repository.apache.org/content/repositories/snapshots</url>
</snapshotRepository>
<!--
<snapshotRepository>
<id>ossrh</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
</snapshotRepository>
-->
</distributionManagement>
<repositories>
<repository>
<id>apache.snapshots</id>
<name>Apache Snapshot Repository</name>
<url>https://repository.apache.org/snapshots</url>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
<issueManagement>
<url>https://issues.apache.org/jira/browse/HIVEMALL/</url>
<system>JIRA</system>
</issueManagement>
<ciManagement>
<system>Travis CI</system>
<url>https://travis-ci.org/apache/incubator-hivemall</url>
</ciManagement>
<profiles>
<profile>
<id>spark-2.2</id>
<modules>
<module>spark/spark-2.2</module>
<module>spark/spark-common</module>
</modules>
<properties>
<spark.version>2.2.0</spark.version>
<spark.binary.version>2.2</spark.binary.version>
</properties>
<build>
<plugins>
<!-- Spark-2.2 only supports Java 8 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>${maven-enforcer-plugin.version}</version>
<executions>
<execution>
<id>enforce-versions</id>
<phase>validate</phase>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireProperty>
<property>java.source.version</property>
<regex>1.8</regex>
<regexMessage>When -Pspark-2.2 set, java.source.version must be 1.8</regexMessage>
</requireProperty>
<requireProperty>
<property>java.target.version</property>
<regex>1.8</regex>
<regexMessage>When -Pspark-2.2 set, java.target.version must be 1.8</regexMessage>
</requireProperty>
</rules>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>spark-2.1</id>
<modules>
<module>spark/spark-2.1</module>
<module>spark/spark-common</module>
</modules>
<properties>
<spark.version>2.1.1</spark.version>
<spark.binary.version>2.1</spark.binary.version>
</properties>
</profile>
<profile>
<id>spark-2.0</id>
<modules>
<module>spark/spark-2.0</module>
<module>spark/spark-common</module>
</modules>
<properties>
<spark.version>2.0.2</spark.version>
<spark.binary.version>2.0</spark.binary.version>
</properties>
</profile>
<profile>
<id>java7</id>
<properties>
<spark.test.jvm.opts>-ea -Xms768m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=512m -XX:ReservedCodeCacheSize=512m</spark.test.jvm.opts>
</properties>
<activation>
<jdk>[,1.8)</jdk> <!-- version < 1.8 -->
</activation>
</profile>
<profile>
<id>java8</id>
<properties>
<spark.test.jvm.opts>-ea -Xms768m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -XX:ReservedCodeCacheSize=512m</spark.test.jvm.opts>
</properties>
<activation>
<jdk>[1.8,)</jdk> <!-- version >= 1.8 -->
</activation>
</profile>
<profile>
<id>compile-xgboost</id>
<build>
<plugins>
<plugin>
<artifactId>exec-maven-plugin</artifactId>
<groupId>org.codehaus.mojo</groupId>
<executions>
<execution>
<id>native</id>
<phase>generate-sources</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>./bin/build_xgboost.sh</executable>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>doclint-java8-disable</id>
<activation>
<jdk>[1.8,)</jdk>
</activation>
<properties>
<javadoc.opts>-Xdoclint:none</javadoc.opts>
</properties>
</profile>
</profiles>
<build>
<directory>target</directory>
<outputDirectory>target/classes</outputDirectory>
<finalName>${project.artifactId}-${project.version}</finalName>
<testOutputDirectory>target/test-classes</testOutputDirectory>
<pluginManagement>
<plugins>
<plugin>
<!-- mvn formatter:format -->
<groupId>net.revelc.code</groupId>
<artifactId>formatter-maven-plugin</artifactId>
<version>0.5.2</version>
<configuration>
<configFile>${main.basedir}/resources/eclipse-style.xml</configFile>
<encoding>UTF-8</encoding>
<lineEnding>LF</lineEnding>
</configuration>
</plugin>
<plugin>
<!-- mvn license:check; mvn license:format -->
<groupId>com.mycila</groupId>
<artifactId>license-maven-plugin</artifactId>
<version>3.0</version>
<configuration>
<header>${main.basedir}/resources/license-header.txt</header>
<properties>
<currentYear>${build.year}</currentYear>
<copyrightOwner>${project.organization.name}</copyrightOwner>
</properties>
<includes>
<include>src/main/**/*.java</include>
<include>src/test/**/*.java</include>
<include>src/main/**/*.scala</include>
<include>src/test/**/*.scala</include>
<include>bin/*.sh</include>
<include>**/pom.xml</include>
<include>docs/gitbook/**/*.md</include>
<include>src/site/markdown/**/*.md</include>
</includes>
<useDefaultExcludes>false</useDefaultExcludes>
<excludes>
<exclude>docs/gitbook/node_modules/**</exclude>
</excludes>
<encoding>UTF-8</encoding>
<headerDefinitions>
<headerDefinition>${main.basedir}/resources/header-definition.xml</headerDefinition>
</headerDefinitions>
<mapping>
<md>XML_STYLE</md>
</mapping>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- mvn apache-rat:check -->
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<version>0.12</version>
</plugin>
<!-- javadoc.jar -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<locale>en_US</locale>
<docencoding>UTF-8</docencoding>
<show>protected</show>
<linksource>true</linksource>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<!-- workaround for Java 8 -->
<!-- see http://stackoverflow.com/questions/15886209/maven-is-not-working-in-java-8-when-javadoc-tags-are-incomplete -->
<additionalparam>${javadoc.opts}</additionalparam>
</configuration>
</execution>
</executions>
</plugin>
<!-- Disable git push during mvn release:prepare -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<goals>deploy</goals>
<pushChanges>false</pushChanges>
<localCheckout>true</localCheckout>
</configuration>
</plugin>
<!-- Copy LICENSE/NOTICE/DISCLAIMER to jar -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-remote-resources-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.basedir}/target/classes/META-INF</outputDirectory>
<resources>
<resource>
<directory>${main.basedir}/</directory>
<includes>
<include>LICENSE</include>
<include>NOTICE</include>
<include>DISCLAIMER</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce-maven</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireMavenVersion>
<version>[3.3.1,)</version>
</requireMavenVersion>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<!-- mvn formatter:format -->
<groupId>net.revelc.code</groupId>
<artifactId>formatter-maven-plugin</artifactId>
</plugin>
<plugin>
<!-- mvn license:check; mvn license:format -->
<groupId>com.mycila</groupId>
<artifactId>license-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<skipTests>${skipTests}</skipTests>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.source.version}</source>
<target>${java.target.version}</target>
<debug>true</debug>
<debuglevel>lines,vars,source</debuglevel>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<enableAssertions>true</enableAssertions>
<forkCount>1</forkCount>
<reuseForks>false</reuseForks>
<forkedProcessTimeoutInSeconds>600</forkedProcessTimeoutInSeconds>
<argLine>-Xmx1536m -XX:+HeapDumpOnOutOfMemoryError</argLine>
<failIfNoTests>false</failIfNoTests>
<environmentVariables>
<JAVA_HOME>${java.home}</JAVA_HOME>
<MALLOC_ARENA_MAX>4</MALLOC_ARENA_MAX>
</environmentVariables>
<systemPropertyVariables>
<java.net.preferIPv4Stack>true</java.net.preferIPv4Stack>
</systemPropertyVariables>
</configuration>
</plugin>
<!-- start coveralls -->
<plugin>
<groupId>org.eluder.coveralls</groupId>
<artifactId>coveralls-maven-plugin</artifactId>
<version>4.3.0</version>
<configuration>
<repoToken>UhHBKJx1qjSDccp9RmlRXhXUoRrdAr150</repoToken>
</configuration>
</plugin>
<!--
Cobertura does not support Java 8 yet
https://github.com/cobertura/cobertura/issues/166
-->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.7</version>
<configuration>
<format>xml</format>
<maxmem>256m</maxmem>
<aggregate>true</aggregate>
</configuration>
</plugin>
<!--
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.6.201602180812</version>
<executions>
<execution>
<id>prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
</executions>
</plugin>
-->
<!-- end overalls -->
<!-- start mvn site -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.apache.maven.doxia</groupId>
<artifactId>doxia-module-markdown</artifactId>
<version>1.7</version>
</dependency>
</dependencies>
</plugin>
<!-- end mvn site -->
<plugin>
<groupId>org.scalastyle</groupId>
<artifactId>scalastyle-maven-plugin</artifactId>
<version>0.8.0</version>
<configuration>
<verbose>false</verbose>
<failOnViolation>true</failOnViolation>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
<failOnWarning>false</failOnWarning>
<sourceDirectory>${basedir}/src/main/scala</sourceDirectory>
<testSourceDirectory>${basedir}/src/test/scala</testSourceDirectory>
<configLocation>spark/spark-common/scalastyle-config.xml</configLocation>
<outputFile>${basedir}/target/scalastyle-output.xml</outputFile>
<inputEncoding>${project.build.sourceEncoding}</inputEncoding>
<outputEncoding>${project.reporting.outputEncoding}</outputEncoding>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- mvn apache-rat:check -->
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<configuration>
<excludesFile>.rat-excludes</excludesFile>
</configuration>
<executions>
<execution>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<tagNameFormat>v@{project.version}</tagNameFormat>
</configuration>
</plugin>
</plugins>
</build>
</project>