HBASE-26718 HFileArchiver can remove referenced StoreFiles from the archive (#4274)
[hbase.git] / hbase-assembly / pom.xml
blobc808b71d5eb28ff7f6b1c89d016704e8f9f1183a
1 <?xml version="1.0"?>
2 <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">
3   <!--
4     /**
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
12      *
13      *     http://www.apache.org/licenses/LICENSE-2.0
14      *
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.
20      */
21     -->
22   <modelVersion>4.0.0</modelVersion>
23   <parent>
24     <artifactId>hbase-build-configuration</artifactId>
25     <groupId>org.apache.hbase</groupId>
26     <version>3.0.0-alpha-3-SNAPSHOT</version>
27     <relativePath>../hbase-build-configuration</relativePath>
28   </parent>
29   <artifactId>hbase-assembly</artifactId>
30   <name>Apache HBase - Assembly</name>
31   <description>
32         Module that does project assembly and that is all that it does.
33     </description>
34   <packaging>pom</packaging>
35   <properties>
36     <license.bundles.dependencies>true</license.bundles.dependencies>
37   </properties>
38   <build>
39     <plugins>
40       <!-- licensing info from our dependencies -->
41       <plugin>
42         <groupId>org.apache.maven.plugins</groupId>
43         <artifactId>maven-remote-resources-plugin</artifactId>
44         <executions>
45           <execution>
46             <id>aggregate-licenses</id>
47             <goals>
48               <goal>process</goal>
49             </goals>
50             <configuration>
51               <properties>
52                 <copyright-end-year>${build.year}</copyright-end-year>
53                 <debug-print-included-work-info>${license.debug.print.included}</debug-print-included-work-info>
54                 <bundled-dependencies>${license.bundles.dependencies}</bundled-dependencies>
55                 <bundled-jquery>${license.bundles.jquery}</bundled-jquery>
56                 <bundled-vega>${license.bundles.vega}</bundled-vega>
57                 <bundled-logo>${license.bundles.logo}</bundled-logo>
58                 <bundled-bootstrap>${license.bundles.bootstrap}</bundled-bootstrap>
59               </properties>
60               <resourceBundles>
61                 <resourceBundle>${project.groupId}:hbase-resource-bundle:${project.version}</resourceBundle>
62               </resourceBundles>
63               <supplementalModelArtifacts>
64                 <supplementalModelArtifact>${project.groupId}:hbase-resource-bundle:${project.version}</supplementalModelArtifact>
65               </supplementalModelArtifacts>
66               <supplementalModels>
67                 <supplementalModel>supplemental-models.xml</supplementalModel>
68               </supplementalModels>
69             </configuration>
70           </execution>
71         </executions>
72       </plugin>
73       <plugin>
74         <artifactId>maven-assembly-plugin</artifactId>
75         <configuration>
76           <!--Else will use hbase-assembly as final name.-->
77           <finalName>hbase-${project.version}</finalName>
78           <skipAssembly>false</skipAssembly>
79           <appendAssemblyId>true</appendAssemblyId>
80           <tarLongFileMode>posix</tarLongFileMode>
81           <descriptors>
82             <descriptor>${assembly.file}</descriptor>
83             <descriptor>src/main/assembly/client.xml</descriptor>
84           </descriptors>
85         </configuration>
86       </plugin>
87       <plugin>
88         <artifactId>maven-dependency-plugin</artifactId>
89         <executions>
90           <execution>
91                 <!-- generates the file that will be used by the bin/hbase script in the dev env -->
92             <id>create-hbase-generated-classpath</id>
93             <phase>test</phase>
94             <goals>
95               <goal>build-classpath</goal>
96             </goals>
97             <configuration>
98               <outputFile>${project.parent.basedir}/target/cached_classpath.txt</outputFile>
99               <excludeArtifactIds>jline,jruby-complete,hbase-shaded-client,hbase-shaded-client-byo-hadoop,hbase-shaded-mapreduce</excludeArtifactIds>
100             </configuration>
101           </execution>
103           <execution>
104             <!-- generates the file that will be used by the bin/hbase zkcli script in the dev env -->
105             <id>create-hbase-generated-classpath-jline</id>
106             <phase>test</phase>
107             <goals>
108               <goal>build-classpath</goal>
109             </goals>
110             <configuration>
111               <outputFile>${project.parent.basedir}/target/cached_classpath_jline.txt</outputFile>
112               <includeArtifactIds>jline</includeArtifactIds>
113             </configuration>
114           </execution>
116           <execution>
117             <!-- generates the file that will be used by the bin/hbase shell script in the dev env -->
118             <id>create-hbase-generated-classpath-jruby</id>
119             <phase>test</phase>
120             <goals>
121               <goal>build-classpath</goal>
122             </goals>
123             <configuration>
124               <outputFile>${project.parent.basedir}/target/cached_classpath_jruby.txt</outputFile>
125               <includeArtifactIds>jruby-complete</includeArtifactIds>
126             </configuration>
127           </execution>
129         <!--
130            Build an aggregation of our templated NOTICE file and the NOTICE files in our dependencies.
131            If MASSEMBLY-382 is fixed we could do this in the assembly
132            Currently relies on env, bash, find, and cat.
133         -->
134           <execution>
135             <!-- put all of the NOTICE files out of our dependencies -->
136             <id>unpack-dependency-notices</id>
137             <phase>prepare-package</phase>
138             <goals>
139               <goal>unpack-dependencies</goal>
140             </goals>
141             <configuration>
142               <excludeTypes>pom</excludeTypes>
143               <useSubDirectoryPerArtifact>true</useSubDirectoryPerArtifact>
144               <includes>**\/NOTICE,**\/NOTICE.txt</includes>
145             </configuration>
146           </execution>
147         </executions>
148       </plugin>
149       <plugin>
150         <groupId>org.codehaus.mojo</groupId>
151         <artifactId>exec-maven-plugin</artifactId>
152         <version>${exec.maven.version}</version>
153         <executions>
154           <execution>
155             <id>concat-NOTICE-files</id>
156             <phase>package</phase>
157             <goals>
158               <goal>exec</goal>
159             </goals>
160             <configuration>
161               <executable>env</executable>
162               <arguments>
163                 <argument>bash</argument>
164                 <argument>-c</argument>
165                 <argument>cat maven-shared-archive-resources/META-INF/NOTICE \
166                   `find ${project.build.directory}/dependency -iname NOTICE -or -iname NOTICE.txt`
167                 </argument>
168               </arguments>
169               <outputFile>${project.build.directory}/NOTICE.aggregate</outputFile>
170               <workingDirectory>${project.build.directory}</workingDirectory>
171             </configuration>
172           </execution>
173         </executions>
174       </plugin>
175       <!-- /end building aggregation of NOTICE files -->
176     </plugins>
177   </build>
178   <dependencies>
179     <!-- client artifacts for downstream use -->
180     <dependency>
181       <groupId>org.apache.hbase</groupId>
182       <artifactId>hbase-shaded-client</artifactId>
183     </dependency>
184     <dependency>
185       <groupId>org.apache.hbase</groupId>
186       <artifactId>hbase-shaded-client-byo-hadoop</artifactId>
187     </dependency>
188     <dependency>
189       <groupId>org.apache.hbase</groupId>
190       <artifactId>hbase-shaded-mapreduce</artifactId>
191     </dependency>
192         <!-- Intra-project dependencies -->
193     <dependency>
194       <groupId>org.apache.hbase</groupId>
195       <artifactId>hbase-it</artifactId>
196       <type>test-jar</type>
197     </dependency>
198     <!-- Hamcrest is required by hbase-it (via junit), but as long as we're grabbing the hbase-it test-jar,
199          maven dependency resolution won't pick it up for us. -->
200     <dependency>
201       <groupId>org.hamcrest</groupId>
202       <artifactId>hamcrest-core</artifactId>
203       <!-- Overriding the scope in depMgmt -->
204       <scope>compile</scope>
205     </dependency>
206     <dependency>
207       <groupId>org.apache.hbase</groupId>
208       <artifactId>hbase-server</artifactId>
209     </dependency>
210     <dependency>
211       <groupId>org.apache.hbase</groupId>
212       <artifactId>hbase-mapreduce</artifactId>
213     </dependency>
214     <dependency>
215       <groupId>org.apache.hbase</groupId>
216       <artifactId>hbase-mapreduce</artifactId>
217       <type>test-jar</type>
218     </dependency>
219     <!-- To dump tools in hbase-procedure into cached_classpath.txt. -->
220     <dependency>
221       <groupId>org.apache.hbase</groupId>
222       <artifactId>hbase-procedure</artifactId>
223     </dependency>
224     <dependency>
225       <groupId>org.apache.hbase</groupId>
226       <artifactId>hbase-procedure</artifactId>
227       <type>test-jar</type>
228       <scope>test</scope>
229     </dependency>
230     <dependency>
231       <groupId>org.apache.hbase</groupId>
232       <artifactId>hbase-hadoop-compat</artifactId>
233       <exclusions>
234         <exclusion>
235           <groupId>com.google.guava</groupId>
236           <artifactId>guava</artifactId>
237         </exclusion>
238       </exclusions>
239     </dependency>
240     <dependency>
241       <groupId>org.apache.hbase</groupId>
242       <artifactId>hbase-shell</artifactId>
243     </dependency>
244     <dependency>
245       <groupId>org.apache.hbase</groupId>
246       <artifactId>hbase-thrift</artifactId>
247     </dependency>
248     <dependency>
249       <groupId>org.apache.hbase</groupId>
250       <artifactId>hbase-rest</artifactId>
251     </dependency>
252     <dependency>
253       <groupId>org.apache.hbase</groupId>
254       <artifactId>hbase-external-blockcache</artifactId>
255     </dependency>
256     <dependency>
257        <groupId>org.apache.hbase</groupId>
258        <artifactId>hbase-testing-util</artifactId>
259     </dependency>
260     <dependency>
261        <groupId>org.apache.hbase</groupId>
262        <artifactId>hbase-metrics-api</artifactId>
263     </dependency>
264     <dependency>
265        <groupId>org.apache.hbase</groupId>
266        <artifactId>hbase-metrics</artifactId>
267     </dependency>
268     <dependency>
269       <groupId>org.apache.hbase</groupId>
270       <artifactId>hbase-protocol-shaded</artifactId>
271     </dependency>
272     <dependency>
273        <groupId>org.apache.hbase</groupId>
274        <artifactId>hbase-resource-bundle</artifactId>
275        <optional>true</optional>
276     </dependency>
277     <dependency>
278       <groupId>org.apache.httpcomponents</groupId>
279       <artifactId>httpclient</artifactId>
280     </dependency>
281     <dependency>
282       <groupId>org.apache.httpcomponents</groupId>
283       <artifactId>httpcore</artifactId>
284     </dependency>
285     <dependency>
286       <groupId>org.apache.hbase</groupId>
287       <artifactId>hbase-backup</artifactId>
288     </dependency>
289     <dependency>
290       <groupId>org.apache.hbase</groupId>
291       <artifactId>hbase-balancer</artifactId>
292     </dependency>
293     <dependency>
294       <groupId>org.apache.hbase</groupId>
295       <artifactId>hbase-replication</artifactId>
296     </dependency>
297     <dependency>
298       <groupId>org.apache.hbase</groupId>
299       <artifactId>hbase-http</artifactId>
300     </dependency>
301     <dependency>
302       <groupId>org.apache.hbase</groupId>
303       <artifactId>hbase-examples</artifactId>
304     </dependency>
305     <dependency>
306       <groupId>org.apache.hbase</groupId>
307       <artifactId>hbase-zookeeper</artifactId>
308     </dependency>
309     <dependency>
310       <groupId>org.apache.hbase</groupId>
311       <artifactId>hbase-hbtop</artifactId>
312     </dependency>
313     <dependency>
314       <groupId>org.apache.hbase</groupId>
315       <artifactId>hbase-compression-aircompressor</artifactId>
316     </dependency>
317     <dependency>
318       <groupId>org.apache.hbase</groupId>
319       <artifactId>hbase-compression-lz4</artifactId>
320     </dependency>
321     <dependency>
322       <groupId>org.apache.hbase</groupId>
323       <artifactId>hbase-compression-snappy</artifactId>
324     </dependency>
325     <dependency>
326       <groupId>org.apache.hbase</groupId>
327       <artifactId>hbase-compression-xz</artifactId>
328     </dependency>
329     <dependency>
330       <groupId>org.apache.hbase</groupId>
331       <artifactId>hbase-compression-zstd</artifactId>
332     </dependency>
333     <dependency>
334       <groupId>jline</groupId>
335       <artifactId>jline</artifactId>
336     </dependency>
337     <dependency>
338       <groupId>com.sun.xml.ws</groupId>
339       <artifactId>jaxws-ri</artifactId>
340       <type>pom</type>
341     </dependency>
342     <!--
343       Include the log framework here.
344       For other sub modules, we only declare slf4j-api as a compile dependency,
345       so here we must pull in the real logging framework to actually log to log4j.
346     -->
347     <dependency>
348       <groupId>org.slf4j</groupId>
349       <artifactId>jcl-over-slf4j</artifactId>
350     </dependency>
351     <dependency>
352       <groupId>org.slf4j</groupId>
353       <artifactId>jul-to-slf4j</artifactId>
354     </dependency>
355     <dependency>
356       <groupId>org.apache.logging.log4j</groupId>
357       <artifactId>log4j-api</artifactId>
358     </dependency>
359     <dependency>
360       <groupId>org.apache.logging.log4j</groupId>
361       <artifactId>log4j-core</artifactId>
362     </dependency>
363     <dependency>
364       <groupId>org.apache.logging.log4j</groupId>
365       <artifactId>log4j-slf4j-impl</artifactId>
366     </dependency>
367     <dependency>
368       <groupId>org.apache.logging.log4j</groupId>
369       <artifactId>log4j-1.2-api</artifactId>
370     </dependency>
371     <!-- Include OpenTelemetry agent -->
372     <dependency>
373       <groupId>io.opentelemetry.javaagent</groupId>
374       <artifactId>opentelemetry-javaagent</artifactId>
375       <classifier>all</classifier>
376     </dependency>
377   </dependencies>
378 </project>