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-asyncfs</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-logging</include>
48 <include>org.apache.hbase:hbase-mapreduce</include>
49 <include>org.apache.hbase:hbase-metrics</include>
50 <include>org.apache.hbase:hbase-metrics-api</include>
51 <include>org.apache.hbase:hbase-procedure</include>
52 <include>org.apache.hbase:hbase-protocol</include>
53 <include>org.apache.hbase:hbase-protocol-shaded</include>
54 <include>org.apache.hbase:hbase-replication</include>
55 <include>org.apache.hbase:hbase-rest</include>
56 <include>org.apache.hbase:hbase-rsgroup</include>
57 <include>org.apache.hbase:hbase-server</include>
58 <include>org.apache.hbase:hbase-shell</include>
59 <include>org.apache.hbase:hbase-testing-util</include>
60 <include>org.apache.hbase:hbase-thrift</include>
61 <include>org.apache.hbase:hbase-zookeeper</include>
63 <!-- Binaries for the dependencies also go in the hbase-jars directory -->
65 <outputDirectory>lib</outputDirectory>
66 <unpack>false</unpack>
70 <!-- Exclude J2EE libraries that get pulled in when building on JDK11 -->
71 <exclude>com.sun.activation:javax.activation</exclude>
73 The following artifacts are transitive dependencies of com.sun.xml.ws:jaxws-ri:pom
74 They are needed to be included in lib/jdk11 to be added to classpath during
75 Java 11 runtime hence excluding from main lib.
77 <exclude>com.sun.istack:istack-commons-runtime</exclude>
78 <exclude>com.sun.xml.bind:jaxb-jxc</exclude>
79 <exclude>com.sun.xml.bind:jaxb-xjc</exclude>
80 <exclude>com.sun.xml.fastinfoset:FastInfoset</exclude>
81 <exclude>com.sun.xml.messaging.saaj:saaj-impl</exclude>
82 <exclude>com.sun.xml.stream.buffer:streambuffer</exclude>
83 <exclude>com.sun.xml.ws:*</exclude>
84 <exclude>jakarta.activation:jakarta.activation-api</exclude>
85 <exclude>jakarta.annotation:jakarta.annotation-api</exclude>
86 <exclude>jakarta.jws:jakarta.jws-api</exclude>
87 <exclude>jakarta.mail:jakarta.mail-api</exclude>
88 <exclude>jakarta.persistence:jakarta.persistence-api</exclude>
89 <exclude>jakarta.xml.bind:jakarta.xml.bind-api</exclude>
90 <exclude>jakarta.xml.soap:jakarta.xml.soap-api</exclude>
91 <exclude>jakarta.xml.ws:jakarta.xml.ws-api</exclude>
92 <exclude>org.eclipse.persistence:*</exclude>
93 <exclude>org.glassfish.external:management-api</exclude>
94 <exclude>org.glassfish.gmbal:gmbal</exclude>
95 <exclude>org.glassfish.ha:ha-api</exclude>
96 <exclude>org.glassfish.jaxb:*</exclude>
97 <exclude>org.glassfish.pfl:*</exclude>
98 <exclude>org.jvnet.mimepull:mimepull</exclude>
99 <exclude>org.jvnet.staxex:stax-ex</exclude>
100 <!-- Exclude libraries that we put in their own dirs under lib/ -->
101 <exclude>com.github.stephenc.findbugs:findbugs-annotations</exclude>
102 <exclude>com.sun.jersey.contribs:*</exclude>
103 <exclude>com.sun.jersey:*</exclude>
104 <exclude>commons-logging:commons-logging</exclude>
105 <exclude>jline:jline</exclude>
106 <exclude>log4j:log4j</exclude>
107 <exclude>ch.qos.reload4j:reload4j</exclude>
108 <exclude>org.apache.hbase:hbase-shaded-client-byo-hadoop</exclude>
109 <exclude>org.apache.hbase:hbase-shaded-client</exclude>
110 <exclude>org.apache.hbase:hbase-shaded-mapreduce</exclude>
111 <exclude>org.apache.htrace:htrace-core4</exclude>
112 <exclude>org.apache.htrace:htrace-core</exclude>
113 <exclude>org.apache.yetus:audience-annotations</exclude>
114 <exclude>org.jruby:jruby-complete</exclude>
115 <exclude>org.slf4j:slf4j-api</exclude>
116 <exclude>org.slf4j:slf4j-log4j12</exclude>
117 <exclude>org.slf4j:slf4j-reload4j</exclude>
123 <!-- Include shaded clients in their own directory -->
125 <useAllReactorProjects>true</useAllReactorProjects>
127 <include>org.apache.hbase:hbase-shaded-client</include>
128 <include>org.apache.hbase:hbase-shaded-mapreduce</include>
129 <include>org.apache.hbase:hbase-shaded-client-byo-hadoop</include>
132 <outputDirectory>lib/shaded-clients</outputDirectory>
133 <unpack>false</unpack>
137 <include>org.apache.hbase:hbase-shaded-client</include>
138 <include>org.apache.hbase:hbase-shaded-mapreduce</include>
139 <include>org.apache.hbase:hbase-shaded-client-byo-hadoop</include>
146 <!-- Include the generated LICENSE and NOTICE files -->
149 <source>${project.build.directory}/maven-shared-archive-resources/META-INF/LICENSE</source>
150 <outputDirectory>.</outputDirectory>
151 <destName>LICENSE.txt</destName>
152 <lineEnding>unix</lineEnding>
155 <source>${project.build.directory}/NOTICE.aggregate</source>
156 <outputDirectory>.</outputDirectory>
157 <destName>NOTICE.txt</destName>
158 <lineEnding>unix</lineEnding>
161 <source>${basedir}/src/main/resources/META-INF/LEGAL</source>
162 <outputDirectory>.</outputDirectory>
163 <destName>LEGAL</destName>
164 <lineEnding>unix</lineEnding>
169 <!-- Add jruby-complete to hbase_home/lib/ruby.
170 Update JRUBY_PACKAGED_WITH_HBASE in bin/hbase and hbase.cmd if you would like to update outputDirectory below -->
172 <outputDirectory>lib/ruby</outputDirectory>
174 <include>org.jruby:jruby-complete</include>
177 <!-- Include third party dependencies the shaded clients expose in the lib directory
180 <outputDirectory>lib/client-facing-thirdparty</outputDirectory>
181 <useTransitiveDependencies>true</useTransitiveDependencies>
182 <!-- Unfortunately, we have to whitelist these because Maven
183 currently doesn't use the dependency-reduced-pom after
184 the shaded module has done its thing. That means if we
185 did this as "transitives of the shaded modules" we'd
186 get a duplication of all the jars we already have in our
187 shaded artifacts. See MNG-5899.
189 Check that things match by listing files and making
190 sure the runtime scoped things are all present in the
193 for module in hbase-shaded-mapreduce hbase-shaded-client; do
194 mvn dependency:list -f hbase-shaded/${module}/dependency-reduced-pom.xml
196 grep -E "runtime|compile" | \
197 grep -v -E "junit|(optional)" | \
201 TODO we should check this in nightly
203 Alternatively, we could
204 stop waiting for Maven to fix this and build the client
205 tarball in a different build.
208 <include>com.github.stephenc.findbugs:findbugs-annotations</include>
209 <include>commons-logging:commons-logging</include>
210 <include>ch.qos.reload4j:reload4j</include>
211 <include>org.apache.htrace:htrace-core4</include>
212 <include>org.apache.htrace:htrace-core</include>
213 <include>org.apache.yetus:audience-annotations</include>
214 <include>org.slf4j:slf4j-api</include>
215 <include>org.slf4j:slf4j-reload4j</include>
219 <outputDirectory>lib/zkcli</outputDirectory>
221 <include>jline:jline</include>
225 <outputDirectory>lib/jdk11</outputDirectory>
226 <useTransitiveDependencies>true</useTransitiveDependencies>
228 <include>com.sun.activation:javax.activation</include>
230 The following artifacts are transitive dependencies of com.sun.xml.ws:jaxws-ri:pom
231 They are needed to be included in lib/jdk11 to be added to classpath during
234 <include>com.sun.istack:istack-commons-runtime</include>
235 <include>com.sun.xml.bind:jaxb-jxc</include>
236 <include>com.sun.xml.bind:jaxb-xjc</include>
237 <include>com.sun.xml.fastinfoset:FastInfoset</include>
238 <include>com.sun.xml.messaging.saaj:saaj-impl</include>
239 <include>com.sun.xml.stream.buffer:streambuffer</include>
240 <include>com.sun.xml.ws:*</include>
241 <include>jakarta.activation:jakarta.activation-api</include>
242 <include>jakarta.annotation:jakarta.annotation-api</include>
243 <include>jakarta.jws:jakarta.jws-api</include>
244 <include>jakarta.mail:jakarta.mail-api</include>
245 <include>jakarta.persistence:jakarta.persistence-api</include>
246 <include>jakarta.xml.bind:jakarta.xml.bind-api</include>
247 <include>jakarta.xml.soap:jakarta.xml.soap-api</include>
248 <include>jakarta.xml.ws:jakarta.xml.ws-api</include>
249 <include>org.eclipse.persistence:*</include>
250 <include>org.glassfish.external:management-api</include>
251 <include>org.glassfish.gmbal:gmbal</include>
252 <include>org.glassfish.ha:ha-api</include>
253 <include>org.glassfish.jaxb:*</include>
254 <include>org.glassfish.pfl:*</include>
255 <include>org.jvnet.mimepull:mimepull</include>
256 <include>org.jvnet.staxex:stax-ex</include>