| <?xml version="1.0"?> |
| <assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.1" |
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.1 http://maven.apache.org/xsd/assembly-1.1.1.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. |
| */ |
| --> |
| |
| <!--This 'all' id is not appended to the produced bundle because we do this: http://maven.apache.org/plugins/maven-assembly-plugin/faq.html#required-classifiers --> |
| <id>client-bin</id> |
| <formats> |
| <format>tar.gz</format> |
| </formats> |
| <!-- Override the root directory in the tarball --> |
| <baseDirectory>hbase-${project.version}-client</baseDirectory> |
| <componentDescriptors> |
| <componentDescriptor>src/main/assembly/client-components.xml</componentDescriptor> |
| </componentDescriptors> |
| <moduleSets> |
| <!-- include regular jars so the shell can use them --> |
| <moduleSet> |
| <useAllReactorProjects>true</useAllReactorProjects> |
| <includes> |
| <include>org.apache.hbase:hbase-shell</include> |
| </includes> |
| <binaries> |
| <unpack>false</unpack> |
| <outputDirectory>lib</outputDirectory> |
| <dependencySets> |
| <dependencySet> |
| <excludes> |
| <!-- Exclude J2EE libraries that get pulled in when building on JDK11 --> |
| <exclude>com.sun.xml.ws:jaxws-ri</exclude> |
| <!-- Exclude libraries that we put in their own dirs under lib/ --> |
| <exclude>org.jruby:jruby-complete</exclude> |
| <exclude>com.sun.jersey:*</exclude> |
| <exclude>com.sun.jersey.contribs:*</exclude> |
| <exclude>jline:jline</exclude> |
| <exclude>com.github.stephenc.findbugs:findbugs-annotations</exclude> |
| <exclude>commons-logging:commons-logging</exclude> |
| <exclude>log4j:log4j</exclude> |
| <exclude>org.apache.hbase:hbase-shaded-client</exclude> |
| <exclude>org.apache.hbase:hbase-shaded-client-byo-hadoop</exclude> |
| <exclude>org.apache.hbase:hbase-shaded-mapreduce</exclude> |
| <exclude>org.apache.htrace:htrace-core4</exclude> |
| <exclude>org.apache.htrace:htrace-core</exclude> |
| <exclude>org.apache.yetus:audience-annotations</exclude> |
| <exclude>org.slf4j:slf4j-api</exclude> |
| <exclude>org.slf4j:jcl-over-slf4j</exclude> |
| <exclude>org.slf4j:jul-to-slf4j</exclude> |
| <exclude>org.slf4j:slf4j-log4j12</exclude> |
| </excludes> |
| </dependencySet> |
| </dependencySets> |
| </binaries> |
| </moduleSet> |
| </moduleSets> |
| <!-- Include the generated LICENSE and NOTICE files --> |
| <files> |
| <file> |
| <source>${project.build.directory}/maven-shared-archive-resources/META-INF/LICENSE</source> |
| <outputDirectory>.</outputDirectory> |
| <destName>LICENSE.txt</destName> |
| <lineEnding>unix</lineEnding> |
| </file> |
| <file> |
| <source>${project.build.directory}/NOTICE.aggregate</source> |
| <outputDirectory>.</outputDirectory> |
| <destName>NOTICE.txt</destName> |
| <lineEnding>unix</lineEnding> |
| </file> |
| <file> |
| <source>${basedir}/src/main/resources/META-INF/LEGAL</source> |
| <outputDirectory>.</outputDirectory> |
| <destName>LEGAL</destName> |
| <lineEnding>unix</lineEnding> |
| </file> |
| </files> |
| |
| <dependencySets> |
| <dependencySet> |
| <outputDirectory>lib/shaded-clients</outputDirectory> |
| <includes> |
| <include>org.apache.hbase:hbase-shaded-client</include> |
| <include>org.apache.hbase:hbase-shaded-mapreduce</include> |
| <include>org.apache.hbase:hbase-shaded-client-byo-hadoop</include> |
| </includes> |
| </dependencySet> |
| <!-- Add jruby-complete to hbase_home/lib/ruby. |
| Update JRUBY_PACKAGED_WITH_HBASE in bin/hbase and hbase.cmd if you would like to update outputDirectory below --> |
| <dependencySet> |
| <outputDirectory>lib/ruby</outputDirectory> |
| <includes> |
| <include>org.jruby:jruby-complete</include> |
| </includes> |
| </dependencySet> |
| <!-- Include third party dependencies the shaded clients expose in the lib directory |
| N.B. this will conflict with the omnibus tarball but these should be precisely |
| the same artifacts so blind overwrite of either should be fine. |
| --> |
| <dependencySet> |
| <outputDirectory>lib/client-facing-thirdparty</outputDirectory> |
| <useTransitiveDependencies>true</useTransitiveDependencies> |
| <!-- Unfortunately, we have to whitelist these because Maven |
| currently doesn't use the dependency-reduced-pom after |
| the shaded module has done its thing. That means if we |
| did this as "transitives of the shaded modules" we'd |
| get a duplication of all the jars we already have in our |
| shaded artifacts. See MNG-5899. |
| |
| Check that things match by listing files and making |
| sure the runtime scoped things are all present in the |
| tarball. e.g.: |
| |
| for module in hbase-shaded-mapreduce hbase-shaded-client; do |
| mvn dependency:list -f hbase-shaded/${module}/dependency-reduced-pom.xml |
| done | \ |
| grep -E "runtime|compile" | \ |
| grep -v -E "junit|(optional)" | \ |
| cut -d ' ' -f 3- | \ |
| sort -u |
| |
| TODO we should check this in nightly |
| |
| Alternatively, we could |
| stop waiting for Maven to fix this and build the client |
| tarball in a different build. |
| --> |
| <includes> |
| <include>com.github.stephenc.findbugs:findbugs-annotations</include> |
| <include>commons-logging:commons-logging</include> |
| <include>log4j:log4j</include> |
| <include>org.apache.htrace:htrace-core4</include> |
| <include>org.apache.htrace:htrace-core</include> |
| <include>org.apache.yetus:audience-annotations</include> |
| <include>org.slf4j:slf4j-api</include> |
| <include>org.slf4j:jcl-over-slf4j</include> |
| <include>org.slf4j:jul-to-slf4j</include> |
| <include>org.slf4j:slf4j-log4j12</include> |
| </includes> |
| </dependencySet> |
| </dependencySets> |
| |
| </assembly> |