<?xml version="1.0"?> <project xmlns="https://maven.apache.org/POM/4.0.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <!-- /** * 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. */ --> <modelVersion>4.0.0</modelVersion> <parent> <artifactId>hbase-build-configuration</artifactId> <groupId>org.apache.hbase</groupId> <version>3.0.0-SNAPSHOT</version> <relativePath>../hbase-build-configuration</relativePath> </parent> <artifactId>hbase-assembly</artifactId> <name>Apache HBase - Assembly</name> <description> Module that does project assembly and that is all that it does. </description> <packaging>pom</packaging> <properties> <license.bundles.dependencies>true</license.bundles.dependencies> </properties> <build> <plugins> <!-- licensing info from our dependencies --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-remote-resources-plugin</artifactId> <executions> <execution> <id>aggregate-licenses</id> <goals> <goal>process</goal> </goals> <configuration> <properties> <copyright-end-year>${build.year}</copyright-end-year> <debug-print-included-work-info>${license.debug.print.included}</debug-print-included-work-info> <bundled-dependencies>${license.bundles.dependencies}</bundled-dependencies> <bundled-jquery>${license.bundles.jquery}</bundled-jquery> <bundled-logo>${license.bundles.logo}</bundled-logo> <bundled-bootstrap>${license.bundles.bootstrap}</bundled-bootstrap> </properties> <resourceBundles> <resourceBundle>${project.groupId}:hbase-resource-bundle:${project.version}</resourceBundle> </resourceBundles> <supplementalModelArtifacts> <supplementalModelArtifact>${project.groupId}:hbase-resource-bundle:${project.version}</supplementalModelArtifact> </supplementalModelArtifacts> <supplementalModels> <supplementalModel>supplemental-models.xml</supplementalModel> </supplementalModels> </configuration> </execution> </executions> </plugin> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <!--Else will use hbase-assembly as final name.--> <finalName>hbase-${project.version}</finalName> <skipAssembly>false</skipAssembly> <appendAssemblyId>true</appendAssemblyId> <tarLongFileMode>posix</tarLongFileMode> <descriptors> <descriptor>${assembly.file}</descriptor> <descriptor>src/main/assembly/client.xml</descriptor> </descriptors> </configuration> </plugin> <plugin> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <!-- generates the file that will be used by the bin/hbase script in the dev env --> <id>create-hbase-generated-classpath</id> <phase>test</phase> <goals> <goal>build-classpath</goal> </goals> <configuration> <outputFile>${project.parent.basedir}/target/cached_classpath.txt</outputFile> <excludeArtifactIds>jline,jruby-complete,hbase-shaded-client,hbase-shaded-client-byo-hadoop,hbase-shaded-mapreduce</excludeArtifactIds> </configuration> </execution> <execution> <!-- generates the file that will be used by the bin/hbase zkcli script in the dev env --> <id>create-hbase-generated-classpath-jline</id> <phase>test</phase> <goals> <goal>build-classpath</goal> </goals> <configuration> <outputFile>${project.parent.basedir}/target/cached_classpath_jline.txt</outputFile> <includeArtifactIds>jline</includeArtifactIds> </configuration> </execution> <execution> <!-- generates the file that will be used by the bin/hbase shell script in the dev env --> <id>create-hbase-generated-classpath-jruby</id> <phase>test</phase> <goals> <goal>build-classpath</goal> </goals> <configuration> <outputFile>${project.parent.basedir}/target/cached_classpath_jruby.txt</outputFile> <includeArtifactIds>jruby-complete</includeArtifactIds> </configuration> </execution> <!-- Build an aggregation of our templated NOTICE file and the NOTICE files in our dependencies. If MASSEMBLY-382 is fixed we could do this in the assembly Currently relies on env, bash, find, and cat. --> <execution> <!-- put all of the NOTICE files out of our dependencies --> <id>unpack-dependency-notices</id> <phase>prepare-package</phase> <goals> <goal>unpack-dependencies</goal> </goals> <configuration> <excludeTypes>pom</excludeTypes> <useSubDirectoryPerArtifact>true</useSubDirectoryPerArtifact> <includes>**\/NOTICE,**\/NOTICE.txt</includes> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>${exec.maven.version}</version> <executions> <execution> <id>concat-NOTICE-files</id> <phase>package</phase> <goals> <goal>exec</goal> </goals> <configuration> <executable>env</executable> <arguments> <argument>bash</argument> <argument>-c</argument> <argument>cat maven-shared-archive-resources/META-INF/NOTICE \ `find ${project.build.directory}/dependency -iname NOTICE -or -iname NOTICE.txt` </argument> </arguments> <outputFile>${project.build.directory}/NOTICE.aggregate</outputFile> <workingDirectory>${project.build.directory}</workingDirectory> </configuration> </execution> </executions> </plugin> <!-- /end building aggregation of NOTICE files --> </plugins> </build> <dependencies> <!-- client artifacts for downstream use --> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-shaded-client</artifactId> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-shaded-client-byo-hadoop</artifactId> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-shaded-mapreduce</artifactId> </dependency> <!-- Intra-project dependencies --> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-it</artifactId> <type>test-jar</type> </dependency> <!-- Hamcrest is required by hbase-it (via junit), but as long as we're grabbing the hbase-it test-jar, maven dependency resolution won't pick it up for us. --> <dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-core</artifactId> <!-- Overriding the scope in depMgmt --> <scope>compile</scope> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-server</artifactId> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-mapreduce</artifactId> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-mapreduce</artifactId> <type>test-jar</type> </dependency> <!-- To dump tools in hbase-procedure into cached_classpath.txt. --> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-procedure</artifactId> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-procedure</artifactId> <type>test-jar</type> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-hadoop-compat</artifactId> <exclusions> <exclusion> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-shell</artifactId> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-thrift</artifactId> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-rest</artifactId> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-external-blockcache</artifactId> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-testing-util</artifactId> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-metrics-api</artifactId> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-metrics</artifactId> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-protocol-shaded</artifactId> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-resource-bundle</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcore</artifactId> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-backup</artifactId> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-balancer</artifactId> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-replication</artifactId> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-http</artifactId> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-examples</artifactId> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-zookeeper</artifactId> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-hbtop</artifactId> </dependency> <dependency> <groupId>jline</groupId> <artifactId>jline</artifactId> </dependency> <dependency> <groupId>com.sun.xml.ws</groupId> <artifactId>jaxws-ri</artifactId> <type>pom</type> </dependency> <!-- Include the log framework here. For other sub modules, we only declare slf4j-api as a compile dependency, so here we must pull in the real logging framework to actually log to log4j. --> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jul-to-slf4j</artifactId> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </dependency> </dependencies> </project>