HBASE-23799 Make our core coprocessors use shaded protobuf (#1280)
[hbase.git] / hbase-assembly / pom.xml
blobf9e443173059b8ad8da12748b6dc359dde9c383a
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-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-logo>${license.bundles.logo}</bundled-logo>
57                 <bundled-bootstrap>${license.bundles.bootstrap}</bundled-bootstrap>
58               </properties>
59               <resourceBundles>
60                 <resourceBundle>${project.groupId}:hbase-resource-bundle:${project.version}</resourceBundle>
61               </resourceBundles>
62               <supplementalModelArtifacts>
63                 <supplementalModelArtifact>${project.groupId}:hbase-resource-bundle:${project.version}</supplementalModelArtifact>
64               </supplementalModelArtifacts>
65               <supplementalModels>
66                 <supplementalModel>supplemental-models.xml</supplementalModel>
67               </supplementalModels>
68             </configuration>
69           </execution>
70         </executions>
71       </plugin>
72       <plugin>
73         <artifactId>maven-assembly-plugin</artifactId>
74         <configuration>
75           <!--Else will use hbase-assembly as final name.-->
76           <finalName>hbase-${project.version}</finalName>
77           <skipAssembly>false</skipAssembly>
78           <appendAssemblyId>true</appendAssemblyId>
79           <tarLongFileMode>posix</tarLongFileMode>
80           <descriptors>
81             <descriptor>${assembly.file}</descriptor>
82             <descriptor>src/main/assembly/client.xml</descriptor>
83           </descriptors>
84         </configuration>
85       </plugin>
86       <plugin>
87         <artifactId>maven-dependency-plugin</artifactId>
88         <executions>
89           <execution>
90                 <!-- generates the file that will be used by the bin/hbase script in the dev env -->
91             <id>create-hbase-generated-classpath</id>
92             <phase>test</phase>
93             <goals>
94               <goal>build-classpath</goal>
95             </goals>
96             <configuration>
97               <outputFile>${project.parent.basedir}/target/cached_classpath.txt</outputFile>
98               <excludeArtifactIds>jline,jruby-complete,hbase-shaded-client,hbase-shaded-client-byo-hadoop,hbase-shaded-mapreduce</excludeArtifactIds>
99             </configuration>
100           </execution>
102           <execution>
103             <!-- generates the file that will be used by the bin/hbase zkcli script in the dev env -->
104             <id>create-hbase-generated-classpath-jline</id>
105             <phase>test</phase>
106             <goals>
107               <goal>build-classpath</goal>
108             </goals>
109             <configuration>
110               <outputFile>${project.parent.basedir}/target/cached_classpath_jline.txt</outputFile>
111               <includeArtifactIds>jline</includeArtifactIds>
112             </configuration>
113           </execution>
115           <execution>
116             <!-- generates the file that will be used by the bin/hbase shell script in the dev env -->
117             <id>create-hbase-generated-classpath-jruby</id>
118             <phase>test</phase>
119             <goals>
120               <goal>build-classpath</goal>
121             </goals>
122             <configuration>
123               <outputFile>${project.parent.basedir}/target/cached_classpath_jruby.txt</outputFile>
124               <includeArtifactIds>jruby-complete</includeArtifactIds>
125             </configuration>
126           </execution>
128         <!--
129            Build an aggregation of our templated NOTICE file and the NOTICE files in our dependencies.
130            If MASSEMBLY-382 is fixed we could do this in the assembly
131            Currently relies on env, bash, find, and cat.
132         -->
133           <execution>
134             <!-- put all of the NOTICE files out of our dependencies -->
135             <id>unpack-dependency-notices</id>
136             <phase>prepare-package</phase>
137             <goals>
138               <goal>unpack-dependencies</goal>
139             </goals>
140             <configuration>
141               <excludeTypes>pom</excludeTypes>
142               <useSubDirectoryPerArtifact>true</useSubDirectoryPerArtifact>
143               <includes>**\/NOTICE,**\/NOTICE.txt</includes>
144             </configuration>
145           </execution>
146         </executions>
147       </plugin>
148       <plugin>
149         <groupId>org.codehaus.mojo</groupId>
150         <artifactId>exec-maven-plugin</artifactId>
151         <version>${exec.maven.version}</version>
152         <executions>
153           <execution>
154             <id>concat-NOTICE-files</id>
155             <phase>package</phase>
156             <goals>
157               <goal>exec</goal>
158             </goals>
159             <configuration>
160               <executable>env</executable>
161               <arguments>
162                 <argument>bash</argument>
163                 <argument>-c</argument>
164                 <argument>cat maven-shared-archive-resources/META-INF/NOTICE \
165                   `find ${project.build.directory}/dependency -iname NOTICE -or -iname NOTICE.txt`
166                 </argument>
167               </arguments>
168               <outputFile>${project.build.directory}/NOTICE.aggregate</outputFile>
169               <workingDirectory>${project.build.directory}</workingDirectory>
170             </configuration>
171           </execution>
172         </executions>
173       </plugin>
174       <!-- /end building aggregation of NOTICE files -->
175     </plugins>
176   </build>
177   <dependencies>
178     <!-- client artifacts for downstream use -->
179     <dependency>
180       <groupId>org.apache.hbase</groupId>
181       <artifactId>hbase-shaded-client</artifactId>
182     </dependency>
183     <dependency>
184       <groupId>org.apache.hbase</groupId>
185       <artifactId>hbase-shaded-client-byo-hadoop</artifactId>
186     </dependency>
187     <dependency>
188       <groupId>org.apache.hbase</groupId>
189       <artifactId>hbase-shaded-mapreduce</artifactId>
190     </dependency>
191         <!-- Intra-project dependencies -->
192     <dependency>
193       <groupId>org.apache.hbase</groupId>
194       <artifactId>hbase-it</artifactId>
195       <type>test-jar</type>
196     </dependency>
197     <!-- Hamcrest is required by hbase-it (via junit), but as long as we're grabbing the hbase-it test-jar,
198          maven dependency resolution won't pick it up for us. -->
199     <dependency>
200       <groupId>org.hamcrest</groupId>
201       <artifactId>hamcrest-core</artifactId>
202       <!-- Overriding the scope in depMgmt -->
203       <scope>compile</scope>
204     </dependency>
205     <dependency>
206       <groupId>org.apache.hbase</groupId>
207       <artifactId>hbase-server</artifactId>
208     </dependency>
209     <dependency>
210       <groupId>org.apache.hbase</groupId>
211       <artifactId>hbase-mapreduce</artifactId>
212     </dependency>
213     <dependency>
214       <groupId>org.apache.hbase</groupId>
215       <artifactId>hbase-mapreduce</artifactId>
216       <type>test-jar</type>
217     </dependency>
218     <!-- To dump tools in hbase-procedure into cached_classpath.txt. -->
219     <dependency>
220       <groupId>org.apache.hbase</groupId>
221       <artifactId>hbase-procedure</artifactId>
222     </dependency>
223     <dependency>
224       <groupId>org.apache.hbase</groupId>
225       <artifactId>hbase-procedure</artifactId>
226       <type>test-jar</type>
227       <scope>test</scope>
228     </dependency>
229     <dependency>
230       <groupId>org.apache.hbase</groupId>
231       <artifactId>hbase-hadoop-compat</artifactId>
232       <exclusions>
233         <exclusion>
234           <groupId>com.google.guava</groupId>
235           <artifactId>guava</artifactId>
236         </exclusion>
237       </exclusions>
238     </dependency>
239     <dependency>
240       <groupId>org.apache.hbase</groupId>
241       <artifactId>${compat.module}</artifactId>
242     </dependency>
243     <dependency>
244       <groupId>org.apache.hbase</groupId>
245       <artifactId>hbase-shell</artifactId>
246     </dependency>
247     <dependency>
248       <groupId>org.apache.hbase</groupId>
249       <artifactId>hbase-thrift</artifactId>
250     </dependency>
251     <dependency>
252       <groupId>org.apache.hbase</groupId>
253       <artifactId>hbase-rest</artifactId>
254     </dependency>
255     <dependency>
256       <groupId>org.apache.hbase</groupId>
257       <artifactId>hbase-external-blockcache</artifactId>
258     </dependency>
259     <dependency>
260        <groupId>org.apache.hbase</groupId>
261        <artifactId>hbase-testing-util</artifactId>
262     </dependency>
263     <dependency>
264        <groupId>org.apache.hbase</groupId>
265        <artifactId>hbase-metrics-api</artifactId>
266     </dependency>
267     <dependency>
268        <groupId>org.apache.hbase</groupId>
269        <artifactId>hbase-metrics</artifactId>
270     </dependency>
271     <dependency>
272       <groupId>org.apache.hbase</groupId>
273       <artifactId>hbase-protocol</artifactId>
274     </dependency>
275     <dependency>
276       <groupId>org.apache.hbase</groupId>
277       <artifactId>hbase-protocol-shaded</artifactId>
278     </dependency>
279     <dependency>
280        <groupId>org.apache.hbase</groupId>
281        <artifactId>hbase-resource-bundle</artifactId>
282        <optional>true</optional>
283     </dependency>
284     <dependency>
285       <groupId>org.apache.httpcomponents</groupId>
286       <artifactId>httpclient</artifactId>
287     </dependency>
288     <dependency>
289       <groupId>org.apache.httpcomponents</groupId>
290       <artifactId>httpcore</artifactId>
291     </dependency>
292     <dependency>
293       <groupId>org.apache.hbase</groupId>
294       <artifactId>hbase-backup</artifactId>
295     </dependency>
296     <dependency>
297       <groupId>org.apache.hbase</groupId>
298       <artifactId>hbase-replication</artifactId>
299     </dependency>
300     <dependency>
301       <groupId>org.apache.hbase</groupId>
302       <artifactId>hbase-http</artifactId>
303     </dependency>
304     <dependency>
305       <groupId>org.apache.hbase</groupId>
306       <artifactId>hbase-examples</artifactId>
307     </dependency>
308     <dependency>
309       <groupId>org.apache.hbase</groupId>
310       <artifactId>hbase-zookeeper</artifactId>
311     </dependency>
312     <dependency>
313       <groupId>org.apache.hbase</groupId>
314       <artifactId>hbase-hbtop</artifactId>
315     </dependency>
316     <dependency>
317       <groupId>jline</groupId>
318       <artifactId>jline</artifactId>
319     </dependency>
320     <dependency>
321       <groupId>com.sun.xml.ws</groupId>
322       <artifactId>jaxws-ri</artifactId>
323       <type>pom</type>
324     </dependency>
325   </dependencies>
326 </project>