blob: 21a31c855ddceb8c7fbc55f643c8fafa6ddd5d5e [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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.accumulo</groupId>
<artifactId>accumulo-project</artifactId>
<version>1.5.1</version>
</parent>
<artifactId>accumulo</artifactId>
<packaging>pom</packaging>
<name>Assemblies</name>
<properties>
<accumulo-top>..</accumulo-top>
</properties>
<dependencies>
<!--
NOTE: These dependency declarations are required to sort
this project to the end of the line in the multimodule
build.
Further, the dependencies for Accumulo artifacts must be
here so they will be copied into the lib directory for
the binary distribution assemblies.
-->
<dependency>
<groupId>org.apache.accumulo</groupId>
<artifactId>accumulo-core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.accumulo</groupId>
<artifactId>accumulo-examples-simple</artifactId>
</dependency>
<dependency>
<groupId>org.apache.accumulo</groupId>
<artifactId>accumulo-fate</artifactId>
</dependency>
<dependency>
<groupId>org.apache.accumulo</groupId>
<artifactId>accumulo-minicluster</artifactId>
</dependency>
<dependency>
<groupId>org.apache.accumulo</groupId>
<artifactId>accumulo-proxy</artifactId>
</dependency>
<dependency>
<groupId>org.apache.accumulo</groupId>
<artifactId>accumulo-server</artifactId>
</dependency>
<dependency>
<groupId>org.apache.accumulo</groupId>
<artifactId>accumulo-start</artifactId>
</dependency>
<dependency>
<groupId>org.apache.accumulo</groupId>
<artifactId>accumulo-test</artifactId>
</dependency>
<dependency>
<groupId>org.apache.accumulo</groupId>
<artifactId>accumulo-trace</artifactId>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<executions>
<execution>
<id>config-webpage</id>
<goals>
<goal>java</goal>
</goals>
<phase>prepare-package</phase>
<configuration>
<mainClass>org.apache.accumulo.core.conf.DefaultConfiguration</mainClass>
<classpathScope>compile</classpathScope>
<arguments>
<argument>--generate-doc</argument>
<argument>${project.build.directory}/../../docs/config.html</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>apache-release</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>attach-source-release-assembly</id>
<goals>
<goal>attach-artifact</goal>
</goals>
<configuration>
<artifacts>
<artifact>
<file>${project.parent.build.directory}/${project.artifactId}-${project.version}-src.tar.gz</file>
<type>tar.gz</type>
<classifier>src</classifier>
</artifact>
</artifacts>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>assemble</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>binary-assembly</id>
<goals>
<goal>single</goal>
</goals>
<phase>package</phase>
<configuration>
<attach>true</attach>
<finalName>${project.artifactId}-${project.version}</finalName>
<descriptors>
<descriptor>src/main/assemblies/binary-release.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>rpm</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>rpm-maven-plugin</artifactId>
<inherited>false</inherited>
<configuration>
<!--
The following is a trick to get the plugin to sign the rpm.
However, these values are ignored, and gpg-agent is used instead.
Requires copying contrib/dotfiles-rpmmacros to $HOME/.rpmmacros
This is a workaround for bug http://jira.codehaus.org/browse/MRPM-139
-->
<keyname>dummy</keyname>
<keyPassphrase>
<passphrase>dummy</passphrase>
</keyPassphrase>
<summary>Apache Accumulo BigTable clone</summary>
<description>Apache Accumulo is a large distributed structured store based on Google's BigTable design.</description>
<!-- This populates the license field of the RPM. -->
<copyright>Apache License, Version 2.0 and others (see included LICENSE file)</copyright>
<url>http://accumulo.apache.org</url>
<group>Utilities</group>
<prefix>/opt/accumulo</prefix>
<defaultDirmode>755</defaultDirmode>
<defaultFilemode>644</defaultFilemode>
<defaultUsername>root</defaultUsername>
<defaultGroupname>root</defaultGroupname>
</configuration>
<executions>
<execution>
<id>build-bin-rpm</id>
<goals>
<goal>attached-rpm</goal>
</goals>
<phase>package</phase>
<configuration>
<name>accumulo</name>
<classifier>bin</classifier>
<provides>
<provide>accumulo</provide>
</provides>
<requires>
<require>jre</require>
<require>hadoop</require>
<require>zookeeper</require>
</requires>
<mappings>
<mapping>
<directory>/opt/accumulo/accumulo-${project.version}</directory>
<sources>
<source>
<location>${accumulo-top}/CHANGES</location>
</source>
<source>
<location>${accumulo-top}/LICENSE</location>
</source>
<source>
<location>${accumulo-top}/NOTICE</location>
</source>
<source>
<location>${accumulo-top}/README</location>
</source>
</sources>
</mapping>
<mapping>
<directory>/opt/accumulo/accumulo-${project.version}/docs</directory>
<sources>
<source>
<location>${accumulo-top}/docs</location>
<excludes>
<exclude>src/**</exclude>
</excludes>
</source>
</sources>
</mapping>
<mapping>
<directory>/opt/accumulo/accumulo-${project.version}/bin</directory>
</mapping>
<mapping>
<directory>/opt/accumulo/accumulo-${project.version}/bin</directory>
<directoryIncluded>false</directoryIncluded>
<filemode>755</filemode>
<username>root</username>
<groupname>root</groupname>
<sources>
<source>
<location>${accumulo-top}/bin</location>
</source>
</sources>
</mapping>
<mapping>
<directory>/opt/accumulo/accumulo-${project.version}/proxy</directory>
<sources>
<source>
<location>${accumulo-top}/proxy/README</location>
</source>
<source>
<location>${accumulo-top}/proxy/proxy.properties</location>
</source>
</sources>
</mapping>
<mapping>
<directory>/opt/accumulo/accumulo-${project.version}/proxy/examples</directory>
<sources>
<source>
<location>${accumulo-top}/proxy/examples</location>
</source>
</sources>
</mapping>
<mapping>
<directory>/opt/accumulo/accumulo-${project.version}/proxy/thrift</directory>
<sources>
<source>
<location>${accumulo-top}/proxy/src/main/thrift</location>
<includes>
<include>*.thrift</include>
</includes>
</source>
<source>
<location>${accumulo-top}/proxy/src/main</location>
<includes>
<include>cpp/**</include>
<include>ruby/**</include>
<include>python/**</include>
</includes>
</source>
</sources>
</mapping>
<mapping>
<directory>/opt/accumulo/accumulo-${project.version}/examples/simple</directory>
<recurseDirectories>true</recurseDirectories>
<sources>
<source>
<location>${accumulo-top}/examples/simple</location>
<includes>
<include>src/main/**</include>
</includes>
</source>
</sources>
</mapping>
<mapping>
<directory>/opt/accumulo/accumulo-${project.version}/conf</directory>
<recurseDirectories>true</recurseDirectories>
<sources>
<source>
<location>${accumulo-top}/conf</location>
<includes>
<include>accumulo.policy.example</include>
<include>examples/**/*</include>
<include>examples/**/*.*</include>
</includes>
</source>
</sources>
</mapping>
<mapping>
<directory>/opt/accumulo/accumulo-${project.version}/lib</directory>
<recurseDirectories>true</recurseDirectories>
<sources>
<source>
<location>${accumulo-top}/lib</location>
<includes>
<include>*.jar</include>
</includes>
</source>
</sources>
</mapping>
<mapping>
<directory>/opt/accumulo/accumulo-${project.version}/lib/ext</directory>
</mapping>
</mappings>
</configuration>
</execution>
<execution>
<id>build-native-libs-rpm</id>
<goals>
<goal>attached-rpm</goal>
</goals>
<phase>package</phase>
<configuration>
<name>accumulo-native</name>
<classifier>native</classifier>
<needarch>x86_64</needarch>
<provides>
<provide>accumulo-native</provide>
</provides>
<requires>
<require>accumulo</require>
</requires>
<mappings>
<mapping>
<directory>/opt/accumulo/accumulo-${project.version}/lib/native/map</directory>
<sources>
<source>
<location>${accumulo-top}/lib/native/map</location>
<includes>
<include>libNativeMap-Linux-amd64-64.so</include>
</includes>
</source>
</sources>
</mapping>
</mappings>
</configuration>
</execution>
<execution>
<id>build-tests-rpm</id>
<goals>
<goal>attached-rpm</goal>
</goals>
<phase>package</phase>
<configuration>
<name>accumulo-test</name>
<classifier>test</classifier>
<provides>
<provide>accumulo-test</provide>
</provides>
<requires>
<require>accumulo</require>
<require>python</require>
</requires>
<mappings>
<mapping>
<directory>/opt/accumulo/accumulo-${project.version}/test</directory>
<sources>
<source>
<location>${accumulo-top}/test</location>
<excludes>
<exclude>src/**</exclude>
<exclude>target/**</exclude>
<exclude>**/walkers.txt</exclude>
<exclude>**/ingesters.txt</exclude>
<exclude>**/continuous-env.sh</exclude>
<exclude>.*/**</exclude>
<exclude>**/*.pyc</exclude>
<exclude>**/*.pyo</exclude>
<exclude>pom.xml</exclude>
</excludes>
</source>
</sources>
</mapping>
</mappings>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>deb</id>
<build>
<plugins>
<plugin>
<groupId>org.vafer</groupId>
<artifactId>jdeb</artifactId>
<version>0.10</version>
<inherited>false</inherited>
<executions>
<execution>
<id>accumulo</id>
<goals>
<goal>jdeb</goal>
</goals>
<phase>package</phase>
<configuration>
<deb>${project.build.directory}/accumulo-${project.version}.deb</deb>
<classifier>bin</classifier>
<controlDir>assemble/deb/accumulo</controlDir>
<installDir>/usr/lib/accumulo</installDir>
<dataSet>
<data>
<src>${accumulo-top}/lib</src>
<type>directory</type>
<mapper>
<type>perm</type>
<prefix>/usr/lib/accumulo/lib</prefix>
</mapper>
<excludes>**/.svn/**,native/**</excludes>
</data>
<data>
<src>${accumulo-top}/NOTICE</src>
<type>file</type>
<mapper>
<type>perm</type>
<prefix>/usr/lib/accumulo</prefix>
</mapper>
</data>
<data>
<src>${accumulo-top}/CHANGES</src>
<type>file</type>
<mapper>
<type>perm</type>
<prefix>/usr/lib/accumulo</prefix>
</mapper>
</data>
<data>
<src>${accumulo-top}/README</src>
<type>file</type>
<mapper>
<type>perm</type>
<prefix>/usr/lib/accumulo</prefix>
</mapper>
</data>
<data>
<src>${accumulo-top}/LICENSE</src>
<type>file</type>
<mapper>
<type>perm</type>
<prefix>/usr/lib/accumulo</prefix>
</mapper>
</data>
<data>
<src>${accumulo-top}/docs</src>
<type>directory</type>
<mapper>
<type>perm</type>
<prefix>/usr/lib/accumulo/docs</prefix>
</mapper>
<excludes>**/.svn/**,src/**</excludes>
</data>
<data>
<src>${accumulo-top}/proxy/README</src>
<type>file</type>
<mapper>
<type>perm</type>
<prefix>/usr/lib/accumulo/proxy</prefix>
</mapper>
<includes>*.thrift</includes>
</data>
<data>
<src>${accumulo-top}/proxy/proxy.properties</src>
<type>file</type>
<mapper>
<type>perm</type>
<prefix>/usr/lib/accumulo/proxy</prefix>
</mapper>
<includes>*.thrift</includes>
</data>
<data>
<src>${accumulo-top}/proxy/examples</src>
<type>directory</type>
<mapper>
<type>perm</type>
<prefix>/usr/lib/accumulo/proxy/examples</prefix>
</mapper>
<excludes>**/.svn/**</excludes>
</data>
<data>
<src>${accumulo-top}/proxy/src/main/thrift</src>
<type>directory</type>
<mapper>
<type>perm</type>
<prefix>/usr/lib/accumulo/proxy/thrift</prefix>
</mapper>
<includes>*.thrift</includes>
</data>
<data>
<src>${accumulo-top}/proxy/src/main/</src>
<type>directory</type>
<mapper>
<type>perm</type>
<prefix>/usr/lib/accumulo/proxy/thrift</prefix>
</mapper>
<includes>cpp/**,python/**,ruby/**</includes>
</data>
<data>
<src>${accumulo-top}/bin</src>
<type>directory</type>
<mapper>
<type>perm</type>
<prefix>/usr/lib/accumulo/bin</prefix>
<filemode>755</filemode>
</mapper>
<excludes>**/.svn/**</excludes>
</data>
<data>
<src>${accumulo-top}/examples/simple</src>
<type>directory</type>
<mapper>
<type>perm</type>
<prefix>/usr/lib/accumulo/examples/simple</prefix>
</mapper>
<includes>src/main/**</includes>
<excludes>**/.svn/**</excludes>
</data>
<data>
<src>${accumulo-top}/conf</src>
<type>directory</type>
<mapper>
<type>perm</type>
<prefix>/usr/lib/accumulo/conf</prefix>
</mapper>
<includes>accumulo.policy.example,examples/**</includes>
<excludes>**/.svn/**</excludes>
</data>
</dataSet>
</configuration>
</execution>
<execution>
<id>accumulo-native</id>
<goals>
<goal>jdeb</goal>
</goals>
<phase>package</phase>
<configuration>
<deb>${project.build.directory}/accumulo-native-${project.version}.deb</deb>
<controlDir>assemble/deb/accumulo-native</controlDir>
<installDir>/usr/lib/accumulo</installDir>
<classifier>native</classifier>
<dataSet>
<data>
<src>${accumulo-top}/server/src/main/c++</src>
<type>directory</type>
<mapper>
<type>perm</type>
<prefix>/usr/lib/accumulo/server/src/main/c++</prefix>
</mapper>
<excludes>**/.svn/**</excludes>
</data>
<data>
<src>${accumulo-top}/server/src/main/java/org/apache/accumulo/server/tabletserver/MLock.java</src>
<type>file</type>
<mapper>
<type>perm</type>
<prefix>/usr/lib/accumulo/server/src/main/java/org/apache/accumulo/server/tabletserver/MLock.java</prefix>
</mapper>
</data>
<data>
<src>${accumulo-top}/server/src/main/java/org/apache/accumulo/server/tabletserver/NativeMap.java</src>
<type>file</type>
<mapper>
<type>perm</type>
<prefix>/usr/lib/accumulo/server/src/main/java/org/apache/accumulo/server/tabletserver/NativeMap.java</prefix>
</mapper>
</data>
</dataSet>
</configuration>
</execution>
<execution>
<id>accumulo-test</id>
<goals>
<goal>jdeb</goal>
</goals>
<phase>package</phase>
<configuration>
<deb>${project.build.directory}/accumulo-test-${project.version}.deb</deb>
<controlDir>assemble/deb/accumulo-test</controlDir>
<installDir>/usr/lib/accumulo</installDir>
<classifier>test</classifier>
<dataSet>
<data>
<src>${accumulo-top}/test</src>
<type>directory</type>
<mapper>
<type>perm</type>
<prefix>/usr/lib/accumulo/test</prefix>
</mapper>
<excludes>**/.svn/**,**/*.pyc,src/**,target/**,**/walkers.txt,**/ingesters.txt,**/continuous-env.sh,.*/**,**/*.pyc,**/*.pyo,pom.xml</excludes>
</data>
</dataSet>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>docs</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-pdf-manuals</id>
<goals>
<goal>copy-resources</goal>
</goals>
<phase>prepare-package</phase>
<configuration>
<outputDirectory>../docs</outputDirectory>
<resources>
<resource>
<directory>${project.build.directory}</directory>
<includes>
<include>*.pdf</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>latex-maven-plugin</artifactId>
<executions>
<execution>
<id>build-pdf-manuals</id>
<goals>
<goal>latex</goal>
</goals>
<phase>compile</phase>
<configuration>
<docsRoot>../docs/src/main/latex</docsRoot>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>