Preparing development version 2.4.4-SNAPSHOT
[hbase.git] / hbase-server / pom.xml
blob5a47d67868475b0e20c87214a8735e96a54216ac
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>2.4.4-SNAPSHOT</version>
27     <relativePath>../hbase-build-configuration</relativePath>
28   </parent>
29   <artifactId>hbase-server</artifactId>
30   <name>Apache HBase - Server</name>
31   <description>Server functionality for HBase</description>
32   <properties>
33     <test.build.webapps>target/test-classes/webapps</test.build.webapps>
34     <license.bundles.logo>true</license.bundles.logo>
35     <license.bundles.bootstrap>true</license.bundles.bootstrap>
36     <license.bundles.jquery>true</license.bundles.jquery>
37   </properties>
38   <build>
39     <!-- Make sure resources get added before they are processed by placing this first
40      -->
41     <resources>
42       <!-- Add the build webabpps to the classpth -->
43       <resource>
44         <directory>${project.build.directory}</directory>
45         <includes>
46           <include>hbase-webapps/**</include>
47         </includes>
48       </resource>
49       <resource>
50         <directory>src/main/resources</directory>
51         <includes>
52           <include>**/**</include>
53         </includes>
54       </resource>
55     </resources>
56     <testResources>
57       <!-- Our test artifact has different license info than our source/bin ones -->
58       <testResource>
59         <directory>src/test/resources/META-INF/</directory>
60         <targetPath>META-INF/</targetPath>
61         <includes>
62           <include>NOTICE</include>
63         </includes>
64         <filtering>true</filtering>
65       </testResource>
66       <testResource>
67         <directory>src/test/resources</directory>
68         <includes>
69           <include>**/**</include>
70         </includes>
71       </testResource>
72     </testResources>
73     <plugins>
74       <plugin>
75         <groupId>com.github.spotbugs</groupId>
76         <artifactId>spotbugs-maven-plugin</artifactId>
77         <configuration>
78           <maxHeap>2048</maxHeap>
79         </configuration>
80       </plugin>
81       <!-- licensing info from our bundled works -->
82       <plugin>
83         <groupId>org.apache.maven.plugins</groupId>
84         <artifactId>maven-remote-resources-plugin</artifactId>
85         <dependencies>
86           <!-- resource bundle only needed at build time -->
87           <dependency>
88             <groupId>org.apache.hbase</groupId>
89             <artifactId>hbase-resource-bundle</artifactId>
90             <version>${project.version}</version>
91           </dependency>
92         </dependencies>
93         <executions>
94           <execution>
95             <id>default</id>
96             <configuration>
97               <attachToTest>false</attachToTest>
98               <properties>
99                 <copyright-end-year>${build.year}</copyright-end-year>
100                 <debug-print-included-work-info>${license.debug.print.included}</debug-print-included-work-info>
101                 <bundled-dependencies>${license.bundles.dependencies}</bundled-dependencies>
102                 <bundled-jquery>${license.bundles.jquery}</bundled-jquery>
103                 <bundled-logo>${license.bundles.logo}</bundled-logo>
104                 <bundled-bootstrap>${license.bundles.bootstrap}</bundled-bootstrap>
105               </properties>
106               <resourceBundles>
107                 <resourceBundle>${project.groupId}:hbase-resource-bundle:${project.version}</resourceBundle>
108               </resourceBundles>
109               <supplementalModelArtifacts>
110                 <supplementalModelArtifact>${project.groupId}:hbase-resource-bundle:${project.version}</supplementalModelArtifact>
111               </supplementalModelArtifacts>
112               <supplementalModels>
113                 <supplementalModel>supplemental-models.xml</supplementalModel>
114               </supplementalModels>
115             </configuration>
116           </execution>
117         </executions>
118       </plugin>
119       <!-- Run with -Dmaven.test.skip.exec=true to build -tests.jar without running
120         tests (this is needed for upstream projects whose tests need this jar simply for
121         compilation) -->
122       <plugin>
123         <!--Make it so assembly:single does nothing in here-->
124         <artifactId>maven-assembly-plugin</artifactId>
125         <configuration>
126           <skipAssembly>true</skipAssembly>
127         </configuration>
128       </plugin>
129       <plugin>
130         <groupId>org.apache.maven.plugins</groupId>
131         <artifactId>maven-jar-plugin</artifactId>
132         <configuration>
133           <!-- Exclude these 2 packages, because their dependency _binary_ files
134             include the sources, and Maven 2.2 appears to add them to the sources to compile,
135             weird -->
136           <excludes>
137             <exclude>org/apache/jute/**</exclude>
138             <exclude>org/apache/zookeeper/**</exclude>
139             <exclude>**/*.jsp</exclude>
140             <exclude>hbase-site.xml</exclude>
141             <exclude>hdfs-site.xml</exclude>
142             <exclude>log4j.properties</exclude>
143             <exclude>mapred-queues.xml</exclude>
144             <exclude>mapred-site.xml</exclude>
145           </excludes>
146         </configuration>
147       </plugin>
148       <!-- General ant tasks, bound to different build phases -->
149       <plugin>
150         <artifactId>maven-antrun-plugin</artifactId>
151         <executions>
152           <!-- Generate web app sources -->
153           <execution>
154             <id>generate</id>
155             <phase>generate-sources</phase>
156             <configuration>
157               <target>
158                 <property name="build.webapps" location="${project.build.directory}/hbase-webapps"/>
159                 <property name="src.webapps" location="${basedir}/src/main/resources/hbase-webapps"/>
160                 <property name="generated.sources" location="${project.build.directory}/generated-sources"/>
161                 <mkdir dir="${build.webapps}"/>
162                 <copy todir="${build.webapps}">
163                   <fileset dir="${src.webapps}">
164                     <exclude name="**/*.jsp"/>
165                     <exclude name="**/.*"/>
166                     <exclude name="**/*~"/>
167                   </fileset>
168                 </copy>
169                 <!--The compile.classpath is passed in by maven -->
170                 <taskdef classname="org.apache.jasper.JspC" name="jspcompiler" classpathref="maven.compile.classpath"/>
171                 <mkdir dir="${build.webapps}/master/WEB-INF"/>
172                 <jspcompiler uriroot="${src.webapps}/master" outputdir="${generated.sources}/java" package="org.apache.hadoop.hbase.generated.master" webxml="${build.webapps}/master/WEB-INF/web.xml"/>
173                 <mkdir dir="${build.webapps}/regionserver/WEB-INF"/>
174                 <jspcompiler uriroot="${src.webapps}/regionserver" outputdir="${generated.sources}/java" package="org.apache.hadoop.hbase.generated.regionserver" webxml="${build.webapps}/regionserver/WEB-INF/web.xml"/>
175               </target>
176             </configuration>
177             <goals>
178               <goal>run</goal>
179             </goals>
180           </execution>
181         </executions>
182       </plugin>
183       <plugin>
184         <groupId>org.codehaus.mojo</groupId>
185         <artifactId>build-helper-maven-plugin</artifactId>
186         <executions>
187           <!-- Add the generated sources -->
188           <execution>
189             <id>jspcSource-packageInfo-source</id>
190             <phase>generate-sources</phase>
191             <goals>
192               <goal>add-source</goal>
193             </goals>
194             <configuration>
195               <sources>
196                 <source>${project.build.directory}/generated-jamon</source>
197                 <source>${project.build.directory}/generated-sources/java</source>
198               </sources>
199             </configuration>
200           </execution>
201         </executions>
202       </plugin>
203       <plugin>
204         <groupId>org.jamon</groupId>
205         <artifactId>jamon-maven-plugin</artifactId>
206         <executions>
207           <execution>
208             <phase>generate-sources</phase>
209             <goals>
210               <goal>translate</goal>
211             </goals>
212             <configuration>
213               <templateSourceDir>src/main/jamon</templateSourceDir>
214               <templateOutputDir>target/generated-jamon</templateOutputDir>
215             </configuration>
216           </execution>
217         </executions>
218       </plugin>
219       <!-- Testing plugins -->
220       <plugin>
221         <artifactId>maven-surefire-plugin</artifactId>
222         <configuration>
223           <systemPropertyVariables>
224             <test.build.webapps>target/test-classes/webapps</test.build.webapps>
225           </systemPropertyVariables>
226         </configuration>
227       </plugin>
228       <plugin>
229         <groupId>net.revelc.code</groupId>
230         <artifactId>warbucks-maven-plugin</artifactId>
231       </plugin>
232     </plugins>
233   </build>
234   <dependencies>
235     <dependency>
236       <groupId>org.apache.hbase.thirdparty</groupId>
237       <artifactId>hbase-shaded-protobuf</artifactId>
238     </dependency>
239     <dependency>
240       <groupId>org.apache.hbase.thirdparty</groupId>
241       <artifactId>hbase-shaded-netty</artifactId>
242     </dependency>
243     <dependency>
244       <groupId>org.apache.hbase.thirdparty</groupId>
245       <artifactId>hbase-shaded-miscellaneous</artifactId>
246     </dependency>
247     <!-- Intra-project dependencies -->
248     <dependency>
249       <groupId>org.apache.hbase</groupId>
250       <artifactId>hbase-logging</artifactId>
251       <type>test-jar</type>
252       <scope>test</scope>
253     </dependency>
254     <dependency>
255       <groupId>org.apache.hbase</groupId>
256       <artifactId>hbase-common</artifactId>
257     </dependency>
258     <dependency>
259       <groupId>org.apache.hbase</groupId>
260       <artifactId>hbase-http</artifactId>
261       <exclusions>
262         <exclusion>
263           <groupId>org.codehaus.jackson</groupId>
264           <artifactId>jackson-core-asl</artifactId>
265         </exclusion>
266       </exclusions>
267     </dependency>
268     <dependency>
269       <groupId>org.apache.hbase</groupId>
270       <artifactId>hbase-http</artifactId>
271       <type>test-jar</type>
272       <scope>test</scope>
273     </dependency>
274     <dependency>
275       <!--Needed by the visiblity tags and acl CPEP things
276            in here in hbase-server (that should be out in hbase-endpoints
277            or integrated). -->
278       <groupId>org.apache.hbase</groupId>
279       <artifactId>hbase-protocol</artifactId>
280     </dependency>
281     <dependency>
282       <groupId>org.apache.hbase</groupId>
283       <artifactId>hbase-protocol-shaded</artifactId>
284     </dependency>
285     <dependency>
286       <groupId>org.apache.hbase</groupId>
287       <artifactId>hbase-procedure</artifactId>
288     </dependency>
289     <dependency>
290       <groupId>org.apache.hbase</groupId>
291       <artifactId>hbase-client</artifactId>
292     </dependency>
293     <dependency>
294       <groupId>org.apache.hbase</groupId>
295       <artifactId>hbase-zookeeper</artifactId>
296     </dependency>
297     <dependency>
298       <groupId>org.apache.hbase</groupId>
299       <artifactId>hbase-replication</artifactId>
300     </dependency>
301     <dependency>
302       <groupId>org.apache.hbase</groupId>
303       <artifactId>hbase-common</artifactId>
304       <type>test-jar</type>
305       <scope>test</scope>
306     </dependency>
307     <dependency>
308       <groupId>org.apache.hbase</groupId>
309       <artifactId>hbase-annotations</artifactId>
310       <type>test-jar</type>
311       <scope>test</scope>
312     </dependency>
313     <dependency>
314       <groupId>org.apache.hbase</groupId>
315       <artifactId>hbase-procedure</artifactId>
316       <type>test-jar</type>
317       <scope>test</scope>
318     </dependency>
319     <dependency>
320       <groupId>org.apache.hbase</groupId>
321       <artifactId>hbase-zookeeper</artifactId>
322       <type>test-jar</type>
323       <scope>test</scope>
324     </dependency>
325     <dependency>
326       <groupId>org.apache.hbase</groupId>
327       <artifactId>hbase-metrics-api</artifactId>
328     </dependency>
329     <dependency>
330       <groupId>org.apache.hbase</groupId>
331       <artifactId>hbase-metrics</artifactId>
332     </dependency>
333     <dependency>
334       <groupId>commons-codec</groupId>
335       <artifactId>commons-codec</artifactId>
336     </dependency>
337     <dependency>
338       <groupId>org.apache.hbase</groupId>
339       <artifactId>hbase-hadoop-compat</artifactId>
340     </dependency>
341     <dependency>
342       <groupId>org.apache.hbase</groupId>
343       <artifactId>hbase-hadoop-compat</artifactId>
344       <type>test-jar</type>
345       <scope>test</scope>
346     </dependency>
347     <dependency>
348       <groupId>org.apache.hbase</groupId>
349       <artifactId>${compat.module}</artifactId>
350       <version>${project.version}</version>
351     </dependency>
352     <dependency>
353       <groupId>org.apache.hbase</groupId>
354       <artifactId>${compat.module}</artifactId>
355       <version>${project.version}</version>
356       <type>test-jar</type>
357       <scope>test</scope>
358     </dependency>
359     <dependency>
360       <groupId>org.apache.hbase</groupId>
361       <artifactId>hbase-asyncfs</artifactId>
362     </dependency>
363     <dependency>
364       <groupId>org.apache.hbase</groupId>
365       <artifactId>hbase-asyncfs</artifactId>
366       <type>test-jar</type>
367       <scope>test</scope>
368     </dependency>
369     <dependency>
370       <!-- For JspC used in ant task, then needed at compile /runtime
371            because the source code made from the JSP refers to its runtime
372         -->
373       <groupId>org.glassfish.web</groupId>
374       <artifactId>javax.servlet.jsp</artifactId>
375     </dependency>
376       <!-- Also used by generated sources from our JSP -->
377     <dependency>
378       <groupId>javax.servlet.jsp</groupId>
379       <artifactId>javax.servlet.jsp-api</artifactId>
380     </dependency>
381     <!-- General dependencies -->
382     <dependency>
383       <groupId>com.github.stephenc.findbugs</groupId>
384       <artifactId>findbugs-annotations</artifactId>
385       <scope>compile</scope>
386       <optional>true</optional>
387     </dependency>
388     <dependency>
389       <groupId>com.github.ben-manes.caffeine</groupId>
390       <artifactId>caffeine</artifactId>
391     </dependency>
392     <dependency>
393       <groupId>io.dropwizard.metrics</groupId>
394       <artifactId>metrics-core</artifactId>
395     </dependency>
396     <dependency>
397       <groupId>com.google.protobuf</groupId>
398       <artifactId>protobuf-java</artifactId>
399     </dependency>
400     <dependency>
401       <groupId>commons-io</groupId>
402       <artifactId>commons-io</artifactId>
403     </dependency>
404     <dependency>
405       <groupId>org.apache.commons</groupId>
406       <artifactId>commons-lang3</artifactId>
407     </dependency>
408     <dependency>
409       <groupId>org.slf4j</groupId>
410       <artifactId>slf4j-api</artifactId>
411     </dependency>
412     <dependency>
413       <groupId>org.apache.commons</groupId>
414       <artifactId>commons-math3</artifactId>
415     </dependency>
416     <dependency>
417       <groupId>org.apache.zookeeper</groupId>
418       <artifactId>zookeeper</artifactId>
419     </dependency>
420     <dependency>
421       <groupId>org.jamon</groupId>
422       <artifactId>jamon-runtime</artifactId>
423     </dependency>
424     <dependency>
425       <groupId>javax.servlet</groupId>
426       <artifactId>javax.servlet-api</artifactId>
427     </dependency>
428     <!-- tracing Dependencies -->
429     <dependency>
430       <groupId>org.apache.htrace</groupId>
431       <artifactId>htrace-core4</artifactId>
432     </dependency>
433     <dependency>
434       <groupId>com.lmax</groupId>
435       <artifactId>disruptor</artifactId>
436     </dependency>
437     <!-- Test dependencies -->
438     <dependency>
439       <groupId>org.hamcrest</groupId>
440       <artifactId>hamcrest-core</artifactId>
441       <scope>test</scope>
442     </dependency>
443     <dependency>
444       <groupId>org.hamcrest</groupId>
445       <artifactId>hamcrest-library</artifactId>
446       <scope>test</scope>
447     </dependency>
448     <dependency>
449       <groupId>org.bouncycastle</groupId>
450       <artifactId>bcprov-jdk15on</artifactId>
451       <scope>test</scope>
452     </dependency>
453     <dependency>
454       <groupId>org.apache.hadoop</groupId>
455       <artifactId>hadoop-minikdc</artifactId>
456       <scope>test</scope>
457       <exclusions>
458         <exclusion>
459           <groupId>bouncycastle</groupId>
460           <artifactId>bcprov-jdk15</artifactId>
461         </exclusion>
462       </exclusions>
463     </dependency>
464     <dependency>
465       <groupId>org.apache.kerby</groupId>
466       <artifactId>kerb-client</artifactId>
467       <scope>test</scope>
468     </dependency>
469     <dependency>
470       <groupId>org.apache.kerby</groupId>
471       <artifactId>kerb-simplekdc</artifactId>
472       <scope>test</scope>
473     </dependency>
474     <dependency>
475       <groupId>org.apache.httpcomponents</groupId>
476       <artifactId>httpclient</artifactId>
477       <scope>test</scope>
478     </dependency>
479     <dependency>
480       <groupId>org.apache.httpcomponents</groupId>
481       <artifactId>httpcore</artifactId>
482       <scope>test</scope>
483     </dependency>
484     <dependency>
485       <groupId>org.apache.commons</groupId>
486       <artifactId>commons-crypto</artifactId>
487       <exclusions>
488         <exclusion>
489           <groupId>net.java.dev.jna</groupId>
490           <artifactId>jna</artifactId>
491         </exclusion>
492       </exclusions>
493     </dependency>
494     <dependency>
495       <groupId>junit</groupId>
496       <artifactId>junit</artifactId>
497       <scope>test</scope>
498     </dependency>
499     <dependency>
500       <groupId>org.mockito</groupId>
501       <artifactId>mockito-core</artifactId>
502       <scope>test</scope>
503     </dependency>
504     <dependency>
505       <groupId>org.slf4j</groupId>
506       <artifactId>jcl-over-slf4j</artifactId>
507       <scope>test</scope>
508     </dependency>
509     <dependency>
510       <groupId>org.slf4j</groupId>
511       <artifactId>jul-to-slf4j</artifactId>
512       <scope>test</scope>
513     </dependency>
514     <dependency>
515       <groupId>org.slf4j</groupId>
516       <artifactId>slf4j-log4j12</artifactId>
517       <scope>test</scope>
518     </dependency>
519     <dependency>
520       <groupId>log4j</groupId>
521       <artifactId>log4j</artifactId>
522       <scope>test</scope>
523     </dependency>
524   </dependencies>
525   <profiles>
526     <!-- Needs to make the profile in apache parent pom -->
527     <profile>
528       <id>apache-release</id>
529       <build>
530         <plugins>
531           <plugin>
532             <groupId>org.apache.maven.plugins</groupId>
533             <artifactId>maven-resources-plugin</artifactId>
534             <executions>
535               <execution>
536                 <id>license-javadocs</id>
537                 <phase>prepare-package</phase>
538                 <goals>
539                   <goal>copy-resources</goal>
540                 </goals>
541                 <configuration>
542                   <outputDirectory>${project.build.directory}/apidocs</outputDirectory>
543                   <resources>
544                     <resource>
545                       <directory>src/main/javadoc/META-INF/</directory>
546                       <targetPath>META-INF/</targetPath>
547                       <includes>
548                         <include>LICENSE</include>
549                         <include>NOTICE</include>
550                       </includes>
551                       <filtering>true</filtering>
552                     </resource>
553                   </resources>
554                 </configuration>
555               </execution>
556             </executions>
557           </plugin>
558         </plugins>
559       </build>
560     </profile>
561     <!-- Skip the tests in this module -->
562     <profile>
563       <id>skipServerTests</id>
564       <activation>
565         <property>
566           <name>skipServerTests</name>
567         </property>
568       </activation>
569       <properties>
570         <surefire.skipFirstPart>true</surefire.skipFirstPart>
571         <surefire.skipSecondPart>true</surefire.skipSecondPart>
572       </properties>
573     </profile>
574     <!-- Special builds -->
575     <profile>
576       <id>native</id>
577       <activation>
578         <activeByDefault>false</activeByDefault>
579       </activation>
580       <build>
581         <plugins>
582           <plugin>
583             <groupId>org.apache.maven.plugins</groupId>
584             <artifactId>maven-antrun-plugin</artifactId>
585             <executions>
586               <execution>
587                 <id>make</id>
588                 <phase>compile</phase>
589                 <goals><goal>run</goal></goals>
590                 <configuration>
591                   <target>
592                     <mkdir dir="${project.build.directory}/native"/>
593                     <exec executable="cmake" dir="${project.build.directory}/native" failonerror="true">
594                       <arg line="${basedir}/src/main/native -DJVM_ARCH_DATA_MODEL=${sun.arch.data.model}"/>
595                     </exec>
596                     <exec executable="make" dir="${project.build.directory}/native" failonerror="true">
597                       <arg line="VERBOSE=1"/>
598                     </exec>
599                   </target>
600                 </configuration>
601               </execution>
602             </executions>
603           </plugin>
604         </plugins>
605       </build>
606     </profile>
607     <!-- Profiles for building against different hadoop versions -->
608     <!-- There are a lot of common dependencies used here, should investigate
609     if we can combine these profiles somehow -->
611     <!-- profile for building against Hadoop 2.x.  This is the default.  -->
612     <profile>
613       <id>hadoop-2.0</id>
614       <activation>
615         <property>
616             <!--Below formatting for dev-support/generate-hadoopX-poms.sh-->
617             <!--h2--><name>!hadoop.profile</name>
618         </property>
619       </activation>
620       <dependencies>
621         <dependency>
622           <groupId>org.apache.hadoop</groupId>
623           <artifactId>hadoop-distcp</artifactId>
624         </dependency>
625         <dependency>
626           <groupId>org.apache.hadoop</groupId>
627           <artifactId>hadoop-common</artifactId>
628         </dependency>
629         <dependency>
630           <groupId>org.apache.hadoop</groupId>
631           <artifactId>hadoop-auth</artifactId>
632         </dependency>
633         <dependency>
634           <groupId>org.apache.hadoop</groupId>
635           <artifactId>hadoop-annotations</artifactId>
636         </dependency>
637         <dependency>
638           <groupId>org.apache.hadoop</groupId>
639           <artifactId>hadoop-mapreduce-client-core</artifactId>
640           <exclusions>
641             <exclusion>
642               <groupId>com.google.guava</groupId>
643               <artifactId>guava</artifactId>
644             </exclusion>
645             <exclusion>
646               <groupId>javax.xml.bind</groupId>
647               <artifactId>java-api</artifactId>
648             </exclusion>
649             <exclusion>
650               <groupId>javax.xml.bind</groupId>
651               <artifactId>jaxb-api</artifactId>
652             </exclusion>
653           </exclusions>
654         </dependency>
655         <dependency>
656           <groupId>org.apache.hadoop</groupId>
657           <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
658           <type>test-jar</type>
659           <scope>test</scope>
660           <exclusions>
661             <exclusion>
662               <groupId>com.google.guava</groupId>
663               <artifactId>guava</artifactId>
664             </exclusion>
665           </exclusions>
666         </dependency>
667         <dependency>
668           <groupId>org.apache.hadoop</groupId>
669           <artifactId>hadoop-hdfs</artifactId>
670         </dependency>
671         <dependency>
672           <groupId>org.apache.hadoop</groupId>
673           <artifactId>hadoop-hdfs</artifactId>
674           <type>test-jar</type>
675           <scope>test</scope>
676         </dependency>
677         <dependency>
678           <groupId>org.apache.hadoop</groupId>
679           <artifactId>hadoop-minicluster</artifactId>
680           <scope>test</scope>
681           <exclusions>
682             <exclusion>
683               <groupId>com.google.guava</groupId>
684               <artifactId>guava</artifactId>
685             </exclusion>
686             <exclusion>
687               <groupId>org.apache.zookeeper</groupId>
688               <artifactId>zookeeper</artifactId>
689             </exclusion>
690           </exclusions>
691         </dependency>
692         <!-- Hadoop needs Netty 3.x at test scope for the minicluster -->
693         <dependency>
694           <groupId>io.netty</groupId>
695           <artifactId>netty</artifactId>
696           <version>${netty.hadoop.version}</version>
697           <scope>test</scope>
698         </dependency>
699       </dependencies>
700       <build>
701         <plugins>
702           <plugin>
703             <artifactId>maven-dependency-plugin</artifactId>
704             <executions>
705               <execution>
706                 <id>create-mrapp-generated-classpath</id>
707                 <phase>generate-test-resources</phase>
708                 <goals>
709                   <goal>build-classpath</goal>
710                 </goals>
711                 <configuration>
712                   <!-- needed to run the unit test for DS to generate
713                   the required classpath that is required in the env
714                   of the launch container in the mini mr/yarn cluster
715                   -->
716                   <outputFile>${project.build.directory}/test-classes/mrapp-generated-classpath</outputFile>
717                 </configuration>
718               </execution>
719             </executions>
720           </plugin>
721         </plugins>
722       </build>
723     </profile>
724     <!--
725       profile for building against Hadoop 3.0.x. Activate using:
726        mvn -Dhadoop.profile=3.0
727     -->
728     <profile>
729       <id>hadoop-3.0</id>
730       <activation>
731         <property>
732           <name>hadoop.profile</name>
733           <value>3.0</value>
734         </property>
735       </activation>
736       <dependencies>
737         <dependency>
738           <groupId>org.apache.hadoop</groupId>
739           <artifactId>hadoop-distcp</artifactId>
740         </dependency>
741         <dependency>
742           <groupId>org.apache.hadoop</groupId>
743           <artifactId>hadoop-common</artifactId>
744         </dependency>
745         <dependency>
746           <groupId>org.apache.hadoop</groupId>
747           <artifactId>hadoop-hdfs</artifactId>
748         </dependency>
749         <dependency>
750           <groupId>org.apache.hadoop</groupId>
751           <artifactId>hadoop-hdfs-client</artifactId>
752         </dependency>
753         <dependency>
754           <groupId>org.apache.hadoop</groupId>
755           <artifactId>hadoop-mapreduce-client-core</artifactId>
756           <exclusions>
757             <exclusion>
758               <groupId>javax.xml.bind</groupId>
759               <artifactId>jaxb-api</artifactId>
760             </exclusion>
761             <exclusion>
762               <groupId>javax.ws.rs</groupId>
763               <artifactId>jsr311-api</artifactId>
764             </exclusion>
765           </exclusions>
766         </dependency>
767         <dependency>
768           <groupId>org.apache.hadoop</groupId>
769           <artifactId>hadoop-hdfs</artifactId>
770           <type>test-jar</type>
771           <scope>test</scope>
772         </dependency>
773         <dependency>
774           <groupId>org.apache.hadoop</groupId>
775           <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
776           <type>test-jar</type>
777           <scope>test</scope>
778         </dependency>
779         <dependency>
780           <groupId>org.apache.hadoop</groupId>
781           <artifactId>hadoop-annotations</artifactId>
782         </dependency>
783         <dependency>
784           <groupId>org.apache.hadoop</groupId>
785           <artifactId>hadoop-minicluster</artifactId>
786           <scope>test</scope>
787           <exclusions>
788             <exclusion>
789               <groupId>javax.xml.bind</groupId>
790               <artifactId>jaxb-api</artifactId>
791             </exclusion>
792             <exclusion>
793               <groupId>javax.ws.rs</groupId>
794               <artifactId>jsr311-api</artifactId>
795             </exclusion>
796           </exclusions>
797         </dependency>
798         <!-- Hadoop needs Netty 3.x at test scope for the minicluster>
799         <dependency>
800           <groupId>io.netty</groupId>
801           <artifactId>netty</artifactId>
802           <version>${netty.hadoop.version}</version>
803           <scope>test</scope>
804         </dependency-->
805       </dependencies>
806       <build>
807         <plugins>
808           <plugin>
809             <artifactId>maven-dependency-plugin</artifactId>
810             <executions>
811               <execution>
812                 <id>create-mrapp-generated-classpath</id>
813                 <phase>generate-test-resources</phase>
814                 <goals>
815                   <goal>build-classpath</goal>
816                 </goals>
817                 <configuration>
818                   <!-- needed to run the unit test for DS to generate
819                   the required classpath that is required in the env
820                   of the launch container in the mini mr/yarn cluster
821                   -->
822                   <outputFile>${project.build.directory}/test-classes/mrapp-generated-classpath</outputFile>
823                 </configuration>
824               </execution>
825             </executions>
826           </plugin>
827         </plugins>
828       </build>
829     </profile>
830     <profile>
831       <id>eclipse-specific</id>
832       <activation>
833         <property>
834           <name>m2e.version</name>
835         </property>
836       </activation>
837       <build>
838         <plugins>
839           <plugin>
840             <groupId>org.apache.maven.plugins</groupId>
841             <artifactId>maven-eclipse-plugin</artifactId>
842             <configuration>
843               <additionalProjectnatures>
844                 <projectnature>org.jamon.project.jamonnature</projectnature>
845               </additionalProjectnatures>
846               <buildcommands>
847                 <buildcommand>org.jamon.project.templateBuilder</buildcommand>
848                 <buildcommand>org.eclipse.jdt.core.javabuilder</buildcommand>
849                 <buildcommand>org.jamon.project.markerUpdater</buildcommand>
850               </buildcommands>
851               <additionalConfig>
852                 <file>
853                   <name>.settings/org.jamon.prefs</name>
854                   <content># now
855                     eclipse.preferences.version=1
856                     templateSourceDir=src/main/jamon
857                     templateOutputDir=target/generated-jamon
858                   </content>
859                 </file>
860               </additionalConfig>
861             </configuration>
862           </plugin>
863         </plugins>
864         <pluginManagement>
865            <plugins>
866              <!--This plugin's configuration is used to store Eclipse m2e settings
867                  only. It has no influence on the Maven build itself and needs to
868                  be kept in plugin management, not in the actual plugins. -->
869             <plugin>
870               <groupId>org.eclipse.m2e</groupId>
871               <artifactId>lifecycle-mapping</artifactId>
872               <configuration>
873                 <lifecycleMappingMetadata>
874                   <pluginExecutions>
875                     <pluginExecution>
876                       <pluginExecutionFilter>
877                         <groupId>org.jamon</groupId>
878                         <artifactId>jamon-maven-plugin</artifactId>
879                         <versionRange>[2.3.4,)</versionRange>
880                         <goals>
881                           <goal>translate</goal>
882                         </goals>
883                       </pluginExecutionFilter>
884                       <action>
885                           <execute>
886                             <runOnIncremental>false</runOnIncremental>
887                             <runOnConfiguration>true</runOnConfiguration>
888                           </execute>
889                       </action>
890                     </pluginExecution>
891                     <pluginExecution>
892                       <pluginExecutionFilter>
893                         <groupId>org.apache.maven.plugins</groupId>
894                         <artifactId>maven-antrun-plugin</artifactId>
895                         <versionRange>[1.6,)</versionRange>
896                         <goals>
897                           <goal>run</goal>
898                         </goals>
899                       </pluginExecutionFilter>
900                       <action>
901                         <execute>
902                           <runOnIncremental>false</runOnIncremental>
903                           <runOnConfiguration>true</runOnConfiguration>
904                         </execute>
905                       </action>
906                     </pluginExecution>
907                     <pluginExecution>
908                       <pluginExecutionFilter>
909                         <groupId>org.apache.maven.plugins</groupId>
910                         <artifactId>maven-dependency-plugin</artifactId>
911                         <versionRange>[2.8,)</versionRange>
912                         <goals>
913                           <goal>build-classpath</goal>
914                         </goals>
915                       </pluginExecutionFilter>
916                       <action>
917                         <ignore></ignore>
918                       </action>
919                     </pluginExecution>
920                   </pluginExecutions>
921                 </lifecycleMappingMetadata>
922               </configuration>
923             </plugin>
924           </plugins>
925         </pluginManagement>
926       </build>
927     </profile>
928   </profiles>
929 </project>