2 <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">
5 * Licensed to the Apache Software Foundation (ASF) under one
6 * or more contributor license agreements. See the NOTICE file
7 * distributed with this work for additional information
8 * regarding copyright ownership. The ASF licenses this file
9 * to you under the Apache License, Version 2.0 (the
10 * "License"); you may not use this file except in compliance
11 * with the License. You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
23 <!--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 -->
26 <format>tar.gz</format>
28 <componentDescriptors>
29 <componentDescriptor>src/main/assembly/components.xml</componentDescriptor>
30 </componentDescriptors>
33 <useAllReactorProjects>true</useAllReactorProjects>
35 <!-- Keep this list sorted by name -->
36 <include>org.apache.hbase:hbase-annotations</include>
37 <include>org.apache.hbase:hbase-backup</include>
38 <include>org.apache.hbase:hbase-client</include>
39 <include>org.apache.hbase:hbase-common</include>
40 <include>org.apache.hbase:hbase-endpoint</include>
41 <include>org.apache.hbase:hbase-examples</include>
42 <include>org.apache.hbase:hbase-external-blockcache</include>
43 <include>org.apache.hbase:hbase-hadoop-compat</include>
44 <include>org.apache.hbase:hbase-hadoop2-compat</include>
45 <include>org.apache.hbase:hbase-http</include>
46 <include>org.apache.hbase:hbase-it</include>
47 <include>org.apache.hbase:hbase-mapreduce</include>
48 <include>org.apache.hbase:hbase-metrics</include>
49 <include>org.apache.hbase:hbase-metrics-api</include>
50 <include>org.apache.hbase:hbase-procedure</include>
51 <include>org.apache.hbase:hbase-protocol</include>
52 <include>org.apache.hbase:hbase-protocol-shaded</include>
53 <include>org.apache.hbase:hbase-replication</include>
54 <include>org.apache.hbase:hbase-rest</include>
55 <include>org.apache.hbase:hbase-server</include>
56 <include>org.apache.hbase:hbase-shell</include>
57 <include>org.apache.hbase:hbase-testing-util</include>
58 <include>org.apache.hbase:hbase-thrift</include>
59 <include>org.apache.hbase:hbase-zookeeper</include>
61 <!-- Binaries for the dependencies also go in the hbase-jars directory -->
63 <outputDirectory>lib</outputDirectory>
64 <unpack>false</unpack>
68 <!-- Exclude J2EE libraries that get pulled in when building on JDK11 -->
69 <exclude>com.sun.activation:javax.activation</exclude>
71 The following artifacts are transitive dependencies of com.sun.xml.ws:jaxws-ri:pom
72 They are needed to be included in lib/jdk11 to be added to classpath during
73 Java 11 runtime hence excluding from main lib.
75 <exclude>com.sun.istack:istack-commons-runtime</exclude>
76 <exclude>com.sun.xml.bind:jaxb-jxc</exclude>
77 <exclude>com.sun.xml.bind:jaxb-xjc</exclude>
78 <exclude>com.sun.xml.fastinfoset:FastInfoset</exclude>
79 <exclude>com.sun.xml.messaging.saaj:saaj-impl</exclude>
80 <exclude>com.sun.xml.stream.buffer:streambuffer</exclude>
81 <exclude>com.sun.xml.ws:*</exclude>
82 <exclude>jakarta.activation:jakarta.activation-api</exclude>
83 <exclude>jakarta.annotation:jakarta.annotation-api</exclude>
84 <exclude>jakarta.jws:jakarta.jws-api</exclude>
85 <exclude>jakarta.mail:jakarta.mail-api</exclude>
86 <exclude>jakarta.persistence:jakarta.persistence-api</exclude>
87 <exclude>jakarta.xml.bind:jakarta.xml.bind-api</exclude>
88 <exclude>jakarta.xml.soap:jakarta.xml.soap-api</exclude>
89 <exclude>jakarta.xml.ws:jakarta.xml.ws-api</exclude>
90 <exclude>org.eclipse.persistence:*</exclude>
91 <exclude>org.glassfish.external:management-api</exclude>
92 <exclude>org.glassfish.gmbal:gmbal</exclude>
93 <exclude>org.glassfish.ha:ha-api</exclude>
94 <exclude>org.glassfish.jaxb:*</exclude>
95 <exclude>org.glassfish.pfl:*</exclude>
96 <exclude>org.jvnet.mimepull:mimepull</exclude>
97 <exclude>org.jvnet.staxex:stax-ex</exclude>
98 <!-- Exclude libraries that we put in their own dirs under lib/ -->
99 <exclude>com.github.stephenc.findbugs:findbugs-annotations</exclude>
100 <exclude>com.sun.jersey.contribs:*</exclude>
101 <exclude>com.sun.jersey:*</exclude>
102 <exclude>commons-logging:commons-logging</exclude>
103 <exclude>jline:jline</exclude>
104 <exclude>log4j:log4j</exclude>
105 <exclude>org.apache.hbase:hbase-shaded-client-byo-hadoop</exclude>
106 <exclude>org.apache.hbase:hbase-shaded-client</exclude>
107 <exclude>org.apache.hbase:hbase-shaded-mapreduce</exclude>
108 <exclude>org.apache.htrace:htrace-core4</exclude>
109 <exclude>org.apache.htrace:htrace-core</exclude>
110 <exclude>org.apache.yetus:audience-annotations</exclude>
111 <exclude>org.jruby:jruby-complete</exclude>
112 <exclude>org.slf4j:slf4j-api</exclude>
113 <exclude>org.slf4j:slf4j-log4j12</exclude>
119 <!-- Include shaded clients in their own directory -->
121 <useAllReactorProjects>true</useAllReactorProjects>
123 <include>org.apache.hbase:hbase-shaded-client</include>
124 <include>org.apache.hbase:hbase-shaded-mapreduce</include>
125 <include>org.apache.hbase:hbase-shaded-client-byo-hadoop</include>
128 <outputDirectory>lib/shaded-clients</outputDirectory>
129 <unpack>false</unpack>
133 <include>org.apache.hbase:hbase-shaded-client</include>
134 <include>org.apache.hbase:hbase-shaded-mapreduce</include>
135 <include>org.apache.hbase:hbase-shaded-client-byo-hadoop</include>
142 <!-- Include the generated LICENSE and NOTICE files -->
145 <source>${project.build.directory}/maven-shared-archive-resources/META-INF/LICENSE</source>
146 <outputDirectory>.</outputDirectory>
147 <destName>LICENSE.txt</destName>
148 <lineEnding>unix</lineEnding>
151 <source>${project.build.directory}/NOTICE.aggregate</source>
152 <outputDirectory>.</outputDirectory>
153 <destName>NOTICE.txt</destName>
154 <lineEnding>unix</lineEnding>
157 <source>${basedir}/src/main/resources/META-INF/LEGAL</source>
158 <outputDirectory>.</outputDirectory>
159 <destName>LEGAL</destName>
160 <lineEnding>unix</lineEnding>
165 <!-- Add jruby-complete to hbase_home/lib/ruby.
166 Update JRUBY_PACKAGED_WITH_HBASE in bin/hbase and hbase.cmd if you would like to update outputDirectory below -->
168 <outputDirectory>lib/ruby</outputDirectory>
170 <include>org.jruby:jruby-complete</include>
173 <!-- Include third party dependencies the shaded clients expose in the lib directory
176 <outputDirectory>lib/client-facing-thirdparty</outputDirectory>
177 <useTransitiveDependencies>true</useTransitiveDependencies>
178 <!-- Unfortunately, we have to whitelist these because Maven
179 currently doesn't use the dependency-reduced-pom after
180 the shaded module has done its thing. That means if we
181 did this as "transitives of the shaded modules" we'd
182 get a duplication of all the jars we already have in our
183 shaded artifacts. See MNG-5899.
185 Check that things match by listing files and making
186 sure the runtime scoped things are all present in the
189 for module in hbase-shaded-mapreduce hbase-shaded-client; do
190 mvn dependency:list -f hbase-shaded/${module}/dependency-reduced-pom.xml
192 grep -E "runtime|compile" | \
193 grep -v -E "junit|(optional)" | \
197 TODO we should check this in nightly
199 Alternatively, we could
200 stop waiting for Maven to fix this and build the client
201 tarball in a different build.
204 <include>com.github.stephenc.findbugs:findbugs-annotations</include>
205 <include>commons-logging:commons-logging</include>
206 <include>log4j:log4j</include>
207 <include>org.apache.htrace:htrace-core4</include>
208 <include>org.apache.htrace:htrace-core</include>
209 <include>org.apache.yetus:audience-annotations</include>
210 <include>org.slf4j:slf4j-api</include>
211 <include>org.slf4j:slf4j-log4j12</include>
215 <outputDirectory>lib/zkcli</outputDirectory>
217 <include>jline:jline</include>
221 <outputDirectory>lib/jdk11</outputDirectory>
222 <useTransitiveDependencies>true</useTransitiveDependencies>
224 <include>com.sun.activation:javax.activation</include>
226 The following artifacts are transitive dependencies of com.sun.xml.ws:jaxws-ri:pom
227 They are needed to be included in lib/jdk11 to be added to classpath during
230 <include>com.sun.istack:istack-commons-runtime</include>
231 <include>com.sun.xml.bind:jaxb-jxc</include>
232 <include>com.sun.xml.bind:jaxb-xjc</include>
233 <include>com.sun.xml.fastinfoset:FastInfoset</include>
234 <include>com.sun.xml.messaging.saaj:saaj-impl</include>
235 <include>com.sun.xml.stream.buffer:streambuffer</include>
236 <include>com.sun.xml.ws:*</include>
237 <include>jakarta.activation:jakarta.activation-api</include>
238 <include>jakarta.annotation:jakarta.annotation-api</include>
239 <include>jakarta.jws:jakarta.jws-api</include>
240 <include>jakarta.mail:jakarta.mail-api</include>
241 <include>jakarta.persistence:jakarta.persistence-api</include>
242 <include>jakarta.xml.bind:jakarta.xml.bind-api</include>
243 <include>jakarta.xml.soap:jakarta.xml.soap-api</include>
244 <include>jakarta.xml.ws:jakarta.xml.ws-api</include>
245 <include>org.eclipse.persistence:*</include>
246 <include>org.glassfish.external:management-api</include>
247 <include>org.glassfish.gmbal:gmbal</include>
248 <include>org.glassfish.ha:ha-api</include>
249 <include>org.glassfish.jaxb:*</include>
250 <include>org.glassfish.pfl:*</include>
251 <include>org.jvnet.mimepull:mimepull</include>
252 <include>org.jvnet.staxex:stax-ex</include>