| <?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>bin</id> |
| <formats> |
| <format>tar.gz</format> |
| </formats> |
| <componentDescriptors> |
| <componentDescriptor>src/main/assembly/components.xml</componentDescriptor> |
| </componentDescriptors> |
| <moduleSets> |
| <moduleSet> |
| <useAllReactorProjects>true</useAllReactorProjects> |
| <includes> |
| <!-- Keep this list sorted by name --> |
| <include>org.apache.hbase:hbase-annotations</include> |
| <include>org.apache.hbase:hbase-asyncfs</include> |
| <include>org.apache.hbase:hbase-backup</include> |
| <include>org.apache.hbase:hbase-balancer</include> |
| <include>org.apache.hbase:hbase-client</include> |
| <include>org.apache.hbase:hbase-common</include> |
| <include>org.apache.hbase:hbase-endpoint</include> |
| <include>org.apache.hbase:hbase-external-blockcache</include> |
| <include>org.apache.hbase:hbase-hadoop-compat</include> |
| <include>org.apache.hbase:hbase-http</include> |
| <include>org.apache.hbase:hbase-it</include> |
| <include>org.apache.hbase:hbase-logging</include> |
| <include>org.apache.hbase:hbase-mapreduce</include> |
| <include>org.apache.hbase:hbase-metrics</include> |
| <include>org.apache.hbase:hbase-metrics-api</include> |
| <include>org.apache.hbase:hbase-procedure</include> |
| <include>org.apache.hbase:hbase-protocol-shaded</include> |
| <include>org.apache.hbase:hbase-replication</include> |
| <include>org.apache.hbase:hbase-rest</include> |
| <include>org.apache.hbase:hbase-server</include> |
| <include>org.apache.hbase:hbase-shell</include> |
| <include>org.apache.hbase:hbase-testing-util</include> |
| <include>org.apache.hbase:hbase-thrift</include> |
| <include>org.apache.hbase:hbase-zookeeper</include> |
| </includes> |
| <!-- Binaries for the dependencies also go in the hbase-jars directory --> |
| <binaries> |
| <outputDirectory>lib</outputDirectory> |
| <unpack>false</unpack> |
| <dependencySets> |
| <dependencySet> |
| <excludes> |
| <!-- Exclude J2EE libraries that get pulled in when building on JDK11 --> |
| <exclude>com.sun.activation:javax.activation</exclude> |
| <!-- The following artifacts are transitive dependencies of com.sun.xml.ws:jaxws-ri:pom |
| They are needed to be included in lib/jdk11 to be added to classpath during |
| Java 11 runtime hence excluding from main lib. |
| --> |
| <exclude>com.sun.xml.ws:*</exclude> |
| <exclude>jakarta.annotation:jakarta.annotation-api</exclude> |
| <exclude>org.glassfish.jaxb:*</exclude> |
| <exclude>com.sun.istack:istack-commons-runtime</exclude> |
| <exclude>org.glassfish.gmbal:gmbal</exclude> |
| <exclude>org.glassfish.external:management-api</exclude> |
| <exclude>org.glassfish.pfl:*</exclude> |
| <exclude>org.jvnet.staxex:stax-ex</exclude> |
| <exclude>com.sun.xml.stream.buffer:streambuffer</exclude> |
| <exclude>org.jvnet.mimepull:mimepull</exclude> |
| <exclude>com.sun.xml.fastinfoset:FastInfoset</exclude> |
| <exclude>org.glassfish.ha:ha-api</exclude> |
| <exclude>com.sun.xml.messaging.saaj:saaj-impl</exclude> |
| <exclude>jakarta.activation:jakarta.activation-api</exclude> |
| <exclude>com.sun.xml.bind:jaxb-xjc</exclude> |
| <exclude>com.sun.xml.bind:jaxb-jxc</exclude> |
| <exclude>jakarta.mail:jakarta.mail-api</exclude> |
| <exclude>jakarta.persistence:jakarta.persistence-api</exclude> |
| <exclude>org.eclipse.persistence:*</exclude> |
| <exclude>jakarta.xml.ws:jakarta.xml.ws-api</exclude> |
| <exclude>jakarta.xml.bind:jakarta.xml.bind-api</exclude> |
| <exclude>jakarta.xml.soap:jakarta.xml.soap-api</exclude> |
| <exclude>jakarta.jws:jakarta.jws-api</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>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>com.github.stephenc.findbugs:findbugs-annotations</exclude> |
| <exclude>commons-logging:commons-logging</exclude> |
| <exclude>log4j:log4j</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:*</exclude> |
| <exclude>org.apache.logging.log4j:*</exclude> |
| <exclude>io.opentelemetry.javaagent:*</exclude> |
| <exclude>junit:junit</exclude> |
| <exclude>org.hamcrest:hamcrest-core</exclude> |
| <exclude>org.mockito:mockito-core</exclude> |
| </excludes> |
| </dependencySet> |
| </dependencySets> |
| </binaries> |
| </moduleSet> |
| <!-- Include shaded clients in their own directory --> |
| <moduleSet> |
| <useAllReactorProjects>true</useAllReactorProjects> |
| <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> |
| <binaries> |
| <outputDirectory>lib/shaded-clients</outputDirectory> |
| <unpack>false</unpack> |
| <dependencySets> |
| <dependencySet> |
| <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> |
| </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> |
| <!-- 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 |
| --> |
| <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:*</include> |
| <include>org.apache.logging.log4j:*</include> |
| <include>io.opentelemetry:*</include> |
| </includes> |
| </dependencySet> |
| <dependencySet> |
| <outputDirectory>lib/zkcli</outputDirectory> |
| <includes> |
| <include>jline:jline</include> |
| </includes> |
| </dependencySet> |
| <dependencySet> |
| <outputDirectory>lib/jdk11</outputDirectory> |
| <useTransitiveDependencies>true</useTransitiveDependencies> |
| <includes> |
| <include>com.sun.activation:javax.activation</include> |
| <!-- The following artifacts are transitive dependencies of com.sun.xml.ws:jaxws-ri:pom |
| They are needed to be included in lib/jdk11 to be added to classpath during |
| Java 11 runtime |
| --> |
| <include>com.sun.xml.ws:*</include> |
| <include>jakarta.annotation:jakarta.annotation-api</include> |
| <include>org.glassfish.jaxb:*</include> |
| <include>com.sun.istack:istack-commons-runtime</include> |
| <include>org.glassfish.gmbal:gmbal</include> |
| <include>org.glassfish.external:management-api</include> |
| <include>org.glassfish.pfl:*</include> |
| <include>org.jvnet.staxex:stax-ex</include> |
| <include>com.sun.xml.stream.buffer:streambuffer</include> |
| <include>org.jvnet.mimepull:mimepull</include> |
| <include>com.sun.xml.fastinfoset:FastInfoset</include> |
| <include>org.glassfish.ha:ha-api</include> |
| <include>com.sun.xml.messaging.saaj:saaj-impl</include> |
| <include>com.fasterxml.woodstox:woodstox-core</include> |
| <include>org.codehaus.woodstox:stax2-api</include> |
| <include>jakarta.activation:jakarta.activation-api</include> |
| <include>com.sun.xml.bind:jaxb-xjc</include> |
| <include>com.sun.xml.bind:jaxb-jxc</include> |
| <include>jakarta.mail:jakarta.mail-api</include> |
| <include>jakarta.persistence:jakarta.persistence-api</include> |
| <include>org.eclipse.persistence:*</include> |
| <include>jakarta.xml.ws:jakarta.xml.ws-api</include> |
| <include>jakarta.xml.bind:jakarta.xml.bind-api</include> |
| <include>jakarta.xml.soap:jakarta.xml.soap-api</include> |
| <include>jakarta.jws:jakarta.jws-api</include> |
| </includes> |
| </dependencySet> |
| <dependencySet> |
| <outputDirectory>lib/trace</outputDirectory> |
| <includes> |
| <include>io.opentelemetry.javaagent:*</include> |
| </includes> |
| </dependencySet> |
| |
| <!-- Adds junit libs to lib/test --> |
| <dependencySet> |
| <outputDirectory>lib/test</outputDirectory> |
| <includes> |
| <include>junit:junit</include> |
| <include>org.hamcrest:hamcrest-core</include> |
| <include>org.mockito:mockito-core</include> |
| </includes> |
| </dependencySet> |
| </dependencySets> |
| |
| </assembly> |