HBASE-20467 Precommit personality should only run checkstyle once if we're going...
[hbase.git] / hbase-assembly / pom.xml
blob5da105b24e7f352c2a8c32140df389920a46d620
1 <?xml version="1.0"?>
2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://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       <plugin>
41         <groupId>org.apache.maven.plugins</groupId>
42         <artifactId>maven-enforcer-plugin</artifactId>
43         <executions>
44           <!-- hbase-spark is ok in the assembly -->
45           <execution>
46             <id>banned-hbase-spark</id>
47             <goals>
48               <goal>enforce</goal>
49             </goals>
50             <configuration>
51               <skip>true</skip>
52             </configuration>
53           </execution>
54         </executions>
55       </plugin>
56       <!-- licensing info from our dependencies -->
57       <plugin>
58         <groupId>org.apache.maven.plugins</groupId>
59         <artifactId>maven-remote-resources-plugin</artifactId>
60         <executions>
61           <execution>
62             <id>aggregate-licenses</id>
63             <goals>
64               <goal>process</goal>
65             </goals>
66             <configuration>
67               <properties>
68                 <copyright-end-year>${build.year}</copyright-end-year>
69                 <debug-print-included-work-info>${license.debug.print.included}</debug-print-included-work-info>
70                 <bundled-dependencies>${license.bundles.dependencies}</bundled-dependencies>
71                 <bundled-jquery>${license.bundles.jquery}</bundled-jquery>
72                 <bundled-logo>${license.bundles.logo}</bundled-logo>
73                 <bundled-bootstrap>${license.bundles.bootstrap}</bundled-bootstrap>
74               </properties>
75               <resourceBundles>
76                 <resourceBundle>${project.groupId}:hbase-resource-bundle:${project.version}</resourceBundle>
77               </resourceBundles>
78               <supplementalModelArtifacts>
79                 <supplementalModelArtifact>${project.groupId}:hbase-resource-bundle:${project.version}</supplementalModelArtifact>
80               </supplementalModelArtifacts>
81               <supplementalModels>
82                 <supplementalModel>supplemental-models.xml</supplementalModel>
83               </supplementalModels>
84             </configuration>
85           </execution>
86         </executions>
87       </plugin>
88       <plugin>
89         <artifactId>maven-assembly-plugin</artifactId>
90         <configuration>
91           <!--Else will use hbase-assembly as final name.-->
92           <finalName>hbase-${project.version}</finalName>
93           <skipAssembly>false</skipAssembly>
94           <appendAssemblyId>true</appendAssemblyId>
95           <tarLongFileMode>gnu</tarLongFileMode>
96           <descriptors>
97             <descriptor>${assembly.file}</descriptor>
98           </descriptors>
99         </configuration>
100       </plugin>
101       <plugin>
102         <artifactId>maven-dependency-plugin</artifactId>
103         <executions>
104           <execution>
105                 <!-- generates the file that will be used by the bin/hbase script in the dev env -->
106             <id>create-hbase-generated-classpath</id>
107             <phase>test</phase>
108             <goals>
109               <goal>build-classpath</goal>
110             </goals>
111             <configuration>
112               <outputFile>${project.parent.basedir}/target/cached_classpath.txt</outputFile>
113               <excludeArtifactIds>jline,jruby-complete</excludeArtifactIds>
114             </configuration>
115           </execution>
117           <execution>
118             <!-- generates the file that will be used by the bin/hbase zkcli script in the dev env -->
119             <id>create-hbase-generated-classpath-jline</id>
120             <phase>test</phase>
121             <goals>
122               <goal>build-classpath</goal>
123             </goals>
124             <configuration>
125               <outputFile>${project.parent.basedir}/target/cached_classpath_jline.txt</outputFile>
126               <includeArtifactIds>jline</includeArtifactIds>
127             </configuration>
128           </execution>
130           <execution>
131             <!-- generates the file that will be used by the bin/hbase shell script in the dev env -->
132             <id>create-hbase-generated-classpath-jruby</id>
133             <phase>test</phase>
134             <goals>
135               <goal>build-classpath</goal>
136             </goals>
137             <configuration>
138               <outputFile>${project.parent.basedir}/target/cached_classpath_jruby.txt</outputFile>
139               <includeArtifactIds>jruby-complete</includeArtifactIds>
140             </configuration>
141           </execution>
143         <!--
144            Build an aggregation of our templated NOTICE file and the NOTICE files in our dependencies.
145            If MASSEMBLY-382 is fixed we could do this in the assembly
146            Currently relies on env, bash, find, and cat.
147         -->
148           <execution>
149             <!-- put all of the NOTICE files out of our dependencies -->
150             <id>unpack-dependency-notices</id>
151             <phase>prepare-package</phase>
152             <goals>
153               <goal>unpack-dependencies</goal>
154             </goals>
155             <configuration>
156               <useSubDirectoryPerArtifact>true</useSubDirectoryPerArtifact>
157               <includes>**\/NOTICE,**\/NOTICE.txt</includes>
158             </configuration>
159           </execution>
160         </executions>
161       </plugin>
162       <plugin>
163         <groupId>org.codehaus.mojo</groupId>
164         <artifactId>exec-maven-plugin</artifactId>
165         <version>${exec.maven.version}</version>
166         <executions>
167           <execution>
168             <id>concat-NOTICE-files</id>
169             <phase>package</phase>
170             <goals>
171               <goal>exec</goal>
172             </goals>
173             <configuration>
174               <executable>env</executable>
175               <arguments>
176                 <argument>bash</argument>
177                 <argument>-c</argument>
178                 <argument>cat maven-shared-archive-resources/META-INF/NOTICE \
179                   `find ${project.build.directory}/dependency -iname NOTICE -or -iname NOTICE.txt`
180                 </argument>
181               </arguments>
182               <outputFile>${project.build.directory}/NOTICE.aggregate</outputFile>
183               <workingDirectory>${project.build.directory}</workingDirectory>
184             </configuration>
185           </execution>
186         </executions>
187       </plugin>
188       <!-- /end building aggregation of NOTICE files -->
189     </plugins>
190   </build>
191   <dependencies>
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     <dependency>
199       <groupId>org.apache.hbase</groupId>
200       <artifactId>hbase-server</artifactId>
201     </dependency>
202     <dependency>
203       <groupId>org.apache.hbase</groupId>
204       <artifactId>hbase-mapreduce</artifactId>
205     </dependency>
206     <dependency>
207       <groupId>org.apache.hbase</groupId>
208       <artifactId>hbase-mapreduce</artifactId>
209       <type>test-jar</type>
210     </dependency>
211     <!-- To dump tools in hbase-procedure into cached_classpath.txt. -->
212     <dependency>
213       <groupId>org.apache.hbase</groupId>
214       <artifactId>hbase-procedure</artifactId>
215     </dependency>
216     <dependency>
217       <groupId>org.apache.hbase</groupId>
218       <artifactId>hbase-procedure</artifactId>
219       <type>test-jar</type>
220       <scope>test</scope>
221     </dependency>
222     <dependency>
223         <groupId>org.apache.hbase</groupId>
224         <artifactId>hbase-hadoop-compat</artifactId>
225         <exclusions>
226           <exclusion>
227             <groupId>com.google.guava</groupId>
228             <artifactId>guava</artifactId>
229           </exclusion>
230         </exclusions>
231     </dependency>
232     <dependency>
233         <groupId>org.apache.hbase</groupId>
234         <artifactId>${compat.module}</artifactId>
235     </dependency>
236     <dependency>
237        <groupId>org.apache.hbase</groupId>
238        <artifactId>hbase-shell</artifactId>
239     </dependency>
240     <dependency>
241       <groupId>org.apache.hbase</groupId>
242       <artifactId>hbase-thrift</artifactId>
243     </dependency>
244     <dependency>
245       <groupId>org.apache.hbase</groupId>
246       <artifactId>hbase-rest</artifactId>
247     </dependency>
248     <dependency>
249       <groupId>org.apache.hbase</groupId>
250       <artifactId>hbase-external-blockcache</artifactId>
251     </dependency>
252     <dependency>
253        <groupId>org.apache.hbase</groupId>
254        <artifactId>hbase-testing-util</artifactId>
255     </dependency>
256     <dependency>
257        <groupId>org.apache.hbase</groupId>
258        <artifactId>hbase-metrics-api</artifactId>
259     </dependency>
260     <dependency>
261        <groupId>org.apache.hbase</groupId>
262        <artifactId>hbase-metrics</artifactId>
263     </dependency>
264     <dependency>
265       <groupId>org.apache.hbase</groupId>
266       <artifactId>hbase-protocol</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.hbase</groupId>
279       <artifactId>hbase-spark</artifactId>
280     </dependency>
281     <dependency>
282       <groupId>org.apache.httpcomponents</groupId>
283       <artifactId>httpclient</artifactId>
284     </dependency>
285     <dependency>
286       <groupId>org.apache.httpcomponents</groupId>
287       <artifactId>httpcore</artifactId>
288     </dependency>
289     <dependency>
290       <groupId>org.apache.hbase</groupId>
291       <artifactId>hbase-spark-it</artifactId>
292       <type>test-jar</type>
293     </dependency>
294     <dependency>
295       <groupId>org.apache.hbase</groupId>
296       <artifactId>hbase-backup</artifactId>
297     </dependency>
298     <dependency>
299       <groupId>org.apache.hbase</groupId>
300       <artifactId>hbase-replication</artifactId>
301     </dependency>
302     <dependency>
303       <groupId>org.apache.hbase</groupId>
304       <artifactId>hbase-http</artifactId>
305     </dependency>
306     <dependency>
307       <groupId>org.apache.hbase</groupId>
308       <artifactId>hbase-examples</artifactId>
309     </dependency>
310     <dependency>
311       <groupId>org.apache.hbase</groupId>
312       <artifactId>hbase-zookeeper</artifactId>
313     </dependency>
314     <dependency>
315       <groupId>jline</groupId>
316       <artifactId>jline</artifactId>
317     </dependency>
318   </dependencies>
319   <profiles>
320     <profile>
321       <id>rsgroup</id>
322       <activation>
323         <property>
324             <name>!skip-rsgroup</name>
325         </property>
326       </activation>
327       <dependencies>
328         <dependency>
329           <groupId>org.apache.hbase</groupId>
330           <artifactId>hbase-rsgroup</artifactId>
331           <version>${project.version}</version>
332         </dependency>
333       </dependencies>
334     </profile>
335   </profiles>
336 </project>