| <?xml version="1.0" encoding="UTF-8"?> |
| <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/maven-v4_0_0.xsd"> |
| <!-- |
| /** |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| |
| ON MVN COMPILE NOT WORKING |
| |
| If you wondering why 'mvn compile' does not work building HBase |
| (in particular, if you are doing it for the first time), instead do |
| 'mvn package'. If you are interested in the full story, see |
| https://issues.apache.org/jira/browse/HBASE-6795. |
| |
| --> |
| <modelVersion>4.0.0</modelVersion> |
| <parent> |
| <groupId>org.apache</groupId> |
| <artifactId>apache</artifactId> |
| <version>23</version> |
| <relativePath/> |
| <!-- no parent resolution --> |
| </parent> |
| <groupId>org.apache.hbase.operator.tools</groupId> |
| <artifactId>hbase-operator-tools</artifactId> |
| <version>${revision}</version> |
| <name>Apache HBase Operator Tools</name> |
| <packaging>pom</packaging> |
| <description> |
| Operator Tools for Apache HBase. |
| </description> |
| <url>https://hbase.apache.org</url> |
| <inceptionYear>2018</inceptionYear> |
| <licenses> |
| <license> |
| <name>Apache License, Version 2.0</name> |
| <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url> |
| <distribution>repo</distribution> |
| </license> |
| </licenses> |
| <modules> |
| <module>hbase-table-reporter</module> |
| <module>hbase-hbck2</module> |
| <module>hbase-kubernetes-deployment</module> |
| <!--Add an assembly module because of http://maven.apache.org/plugins/maven-assembly-plugin/faq.html#module-binaries |
| --> |
| <module>hbase-operator-tools-assembly</module> |
| <module>hbase-tools</module> |
| </modules> |
| <scm> |
| <connection>scm:git:git://gitbox.apache.org/repos/asf/hbase-operator-tools.git</connection> |
| <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/hbase-operator-tools.git</developerConnection> |
| <url>https://gitbox.apache.org/repos/asf?p=hbase-operator-tools.git;a=summary</url> |
| </scm> |
| <issueManagement> |
| <!--File issues for this project against Apache HBase JIRA--> |
| <system>JIRA</system> |
| <url>http://issues.apache.org/jira/browse/HBASE</url> |
| </issueManagement> |
| <ciManagement> |
| <system>hudson</system> |
| <url>http://hudson.zones.apache.org/hudson/view/HBase/job/HBase-TRUNK/</url> |
| </ciManagement> |
| <mailingLists> |
| <mailingList> |
| <name>User List</name> |
| <subscribe>user-subscribe@hbase.apache.org</subscribe> |
| <unsubscribe>user-unsubscribe@hbase.apache.org</unsubscribe> |
| <post>user@hbase.apache.org</post> |
| <archive>http://mail-archives.apache.org/mod_mbox/hbase-user/</archive> |
| <otherArchives> |
| <otherArchive>http://dir.gmane.org/gmane.comp.java.hadoop.hbase.user</otherArchive> |
| <otherArchive>http://search-hadoop.com/?q=&fc_project=HBase</otherArchive> |
| </otherArchives> |
| </mailingList> |
| <mailingList> |
| <name>Developer List</name> |
| <subscribe>dev-subscribe@hbase.apache.org</subscribe> |
| <unsubscribe>dev-unsubscribe@hbase.apache.org</unsubscribe> |
| <post>dev@hbase.apache.org</post> |
| <archive>http://mail-archives.apache.org/mod_mbox/hbase-dev/</archive> |
| <otherArchives> |
| <otherArchive>http://dir.gmane.org/gmane.comp.java.hadoop.hbase.devel</otherArchive> |
| <otherArchive>http://search-hadoop.com/?q=&fc_project=HBase</otherArchive> |
| </otherArchives> |
| </mailingList> |
| <mailingList> |
| <name>Commits List</name> |
| <subscribe>commits-subscribe@hbase.apache.org</subscribe> |
| <unsubscribe>commits-unsubscribe@hbase.apache.org</unsubscribe> |
| <archive>http://mail-archives.apache.org/mod_mbox/hbase-commits/</archive> |
| </mailingList> |
| <mailingList> |
| <name>Issues List</name> |
| <subscribe>issues-subscribe@hbase.apache.org</subscribe> |
| <unsubscribe>issues-unsubscribe@hbase.apache.org</unsubscribe> |
| <archive>http://mail-archives.apache.org/mod_mbox/hbase-issues/</archive> |
| </mailingList> |
| <mailingList> |
| <name>Builds List</name> |
| <subscribe>builds-subscribe@hbase.apache.org</subscribe> |
| <unsubscribe>builds-unsubscribe@hbase.apache.org</unsubscribe> |
| <archive>http://mail-archives.apache.org/mod_mbox/hbase-builds/</archive> |
| </mailingList> |
| </mailingLists> |
| <developers/> |
| <!--TODO--> |
| <properties> |
| <revision>1.3.0-SNAPSHOT</revision> |
| <maven.javadoc.skip>true</maven.javadoc.skip> |
| <maven.build.timestamp.format> |
| yyyy-MM-dd'T'HH:mm |
| </maven.build.timestamp.format> |
| <buildDate>${maven.build.timestamp}</buildDate> |
| <compileSource>1.8</compileSource> |
| <java.min.version>${compileSource}</java.min.version> |
| <maven.min.version>3.3.3</maven.min.version> |
| <hbase.version>2.4.4</hbase.version> |
| <hbase-thirdparty.version>2.2.1</hbase-thirdparty.version> |
| <log4j2.version>2.17.1</log4j2.version> |
| <surefire.provider>surefire-junit47</surefire.provider> |
| <test.output.tofile>true</test.output.tofile> |
| <checkstyle.version>8.45.1</checkstyle.version> |
| <junit.version>4.12</junit.version> |
| <maven.checkstyle.version>3.2.1</maven.checkstyle.version> |
| <hbase.checkstyle.version>2.5.0</hbase.checkstyle.version> |
| <enforcer.version>3.0.0-M2</enforcer.version> |
| <extra.enforcer.version>1.0-beta-9</extra.enforcer.version> |
| <findbugs-annotations.version>1.3.9-1</findbugs-annotations.version> |
| <!--code coverage properties--> |
| <clover-maven-plugin.version>4.4.1</clover-maven-plugin.version> |
| <sonar-maven-plugin.version>3.9.1.2184</sonar-maven-plugin.version> |
| </properties> |
| <dependencyManagement> |
| <dependencies> |
| <dependency> |
| <groupId>org.apache.hbase</groupId> |
| <artifactId>hbase-zookeeper</artifactId> |
| <version>${hbase.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hbase.operator.tools</groupId> |
| <artifactId>hbase-hbck2</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.hbase.operator.tools</groupId> |
| <artifactId>hbase-tools</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| </dependencies> |
| </dependencyManagement> |
| <build> |
| <pluginManagement> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-dependency-plugin</artifactId> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-release-plugin</artifactId> |
| <configuration> |
| <!--You need this profile. It'll sign your artifacts. |
| I'm not sure if this config. actually works though. |
| I've been specifying -Papache-release on the command-line |
| --> |
| <releaseProfiles>apache-release</releaseProfiles> |
| <!--This stops our running tests for each stage of maven release. |
| But it builds the test jar. From SUREFIRE-172. |
| --> |
| <arguments>-Dmaven.test.skip.exec ${arguments}</arguments> |
| <goals>${goals}</goals> |
| <pomFileName>pom.xml</pomFileName> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-compiler-plugin</artifactId> |
| <configuration> |
| <source>${compileSource}</source> |
| <target>${compileSource}</target> |
| <showWarnings>true</showWarnings> |
| <showDeprecation>false</showDeprecation> |
| <useIncrementalCompilation>false</useIncrementalCompilation> |
| <compilerArgument>-Xlint:-options</compilerArgument> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>build-helper-maven-plugin</artifactId> |
| <version>1.9.1</version> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <dependencies> |
| <!-- by default surefire selects dynamically the connector to the unit tests |
| tool. We want to use always the same as the different connectors can have different |
| bugs and behaviour. --> |
| <dependency> |
| <groupId>org.apache.maven.surefire</groupId> |
| <artifactId>${surefire.provider}</artifactId> |
| <version>${surefire.version}</version> |
| </dependency> |
| </dependencies> |
| <!-- Generic testing configuration for all packages --> |
| <configuration> |
| <failIfNoTests>false</failIfNoTests> |
| <reuseForks>false</reuseForks> |
| <testFailureIgnore>${surefire.testFailureIgnore}</testFailureIgnore> |
| <forkedProcessTimeoutInSeconds>${surefire.timeout}</forkedProcessTimeoutInSeconds> |
| <redirectTestOutputToFile>${test.output.tofile}</redirectTestOutputToFile> |
| <systemPropertyVariables> |
| <test.build.classes>${test.build.classes}</test.build.classes> |
| </systemPropertyVariables> |
| <excludes> |
| <!-- users can add -D option to skip particular test classes |
| ex: mvn test -Dtest.exclude.pattern=**/TestFoo.java,**/TestBar.java |
| --> |
| <exclude>${test.exclude.pattern}</exclude> |
| </excludes> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-clean-plugin</artifactId> |
| <configuration> |
| <filesets> |
| <fileset> |
| <!--dfs tests have build dir hardcoded. Clean it as part of |
| clean target--> |
| <directory>build</directory> |
| </fileset> |
| </filesets> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.rat</groupId> |
| <artifactId>apache-rat-plugin</artifactId> |
| <configuration> |
| <excludes> |
| <exclude>**/*.versionsBackup</exclude> |
| <exclude>**/*.log</exclude> |
| <exclude>**/.*</exclude> |
| <exclude>**/*.tgz</exclude> |
| <exclude>**/*.orig</exclude> |
| <exclude>**/.idea/**</exclude> |
| <exclude>**/*.iml</exclude> |
| <exclude>**/CHANGES.txt</exclude> |
| <exclude>**/generated/**</exclude> |
| <exclude>**/gen-*/**</exclude> |
| <exclude>**/*.avpr</exclude> |
| <exclude>**/*.svg</exclude> |
| <!-- vector graphics --> |
| <exclude>**/*.vm</exclude> |
| <!-- exclude source control files --> |
| <exclude>.git/**</exclude> |
| <exclude>**/.settings/**</exclude> |
| <exclude>**/patchprocess/**</exclude> |
| <exclude>**/dependency-reduced-pom.xml</exclude> |
| <exclude>**/rat.txt</exclude> |
| <exclude>**/README.txt</exclude> |
| <exclude>**/vote.tmpl</exclude> |
| </excludes> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>buildnumber-maven-plugin</artifactId> |
| <version>1.4</version> |
| <executions> |
| <execution> |
| <phase>validate</phase> |
| <goals> |
| <goal>create-timestamp</goal> |
| </goals> |
| </execution> |
| </executions> |
| <configuration> |
| <timestampFormat>yyyy</timestampFormat> |
| <timestampPropertyName>build.year</timestampPropertyName> |
| </configuration> |
| </plugin> |
| <plugin> |
| <!-- Approach followed here is roughly the same as mentioned here: |
| https://maven.apache.org/plugins/maven-checkstyle-plugin/examples/multi-module-config.html |
| --> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-checkstyle-plugin</artifactId> |
| <version>${maven.checkstyle.version}</version> |
| <dependencies> |
| <dependency> |
| <groupId>org.apache.hbase</groupId> |
| <artifactId>hbase-checkstyle</artifactId> |
| <version>${hbase.checkstyle.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>com.puppycrawl.tools</groupId> |
| <artifactId>checkstyle</artifactId> |
| <version>${checkstyle.version}</version> |
| </dependency> |
| </dependencies> |
| <configuration> |
| <configLocation>hbase/checkstyle.xml</configLocation> |
| <suppressionsLocation>build-support/checkstyle-suppressions.xml</suppressionsLocation> |
| <includeTestSourceDirectory>true</includeTestSourceDirectory> |
| </configuration> |
| </plugin> |
| </plugins> |
| </pluginManagement> |
| <plugins> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>flatten-maven-plugin</artifactId> |
| <version>1.3.0</version> |
| <configuration> |
| <updatePomFile>true</updatePomFile> |
| <flattenMode>oss</flattenMode> |
| </configuration> |
| <executions> |
| <execution> |
| <!-- enable flattening --> |
| <id>flatten</id> |
| <goals> |
| <goal>flatten</goal> |
| </goals> |
| <phase>process-resources</phase> |
| </execution> |
| <execution> |
| <!-- ensure proper cleanup --> |
| <id>flatten.clean</id> |
| <goals> |
| <goal>clean</goal> |
| </goals> |
| <phase>clean</phase> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <artifactId>maven-clean-plugin</artifactId> |
| <configuration> |
| <filesets> |
| <fileset> |
| <directory>${basedir}</directory> |
| <includes> |
| <include>dependency-reduced-pom.xml</include> |
| </includes> |
| </fileset> |
| </filesets> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-enforcer-plugin</artifactId> |
| <version>${enforcer.version}</version> |
| <dependencies> |
| <dependency> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>extra-enforcer-rules</artifactId> |
| <version>${extra.enforcer.version}</version> |
| </dependency> |
| </dependencies> |
| <!-- version set by parent --> |
| <executions> |
| <execution> |
| <id>min-maven-min-java-banned-xerces</id> |
| <goals> |
| <goal>enforce</goal> |
| </goals> |
| <configuration> |
| <rules> |
| <!-- The earliest maven version we verify builds for via ASF Jenkins --> |
| <requireMavenVersion> |
| <version>[${maven.min.version},)</version> |
| <message>Maven is out of date. |
| HBase requires at least version ${maven.min.version} of Maven to properly build from source. |
| You appear to be using an older version. You can use either "mvn -version" or |
| "mvn enforcer:display-info" to verify what version is active. |
| See the reference guide on building for more information: http://hbase.apache.org/book.html#build |
| </message> |
| </requireMavenVersion> |
| <!-- The earliest JVM version we verify builds for via ASF Jenkins --> |
| <requireJavaVersion> |
| <version>[${java.min.version},)</version> |
| <message>Java is out of date. |
| HBase requires at least version ${java.min.version} of the JDK to properly build from source. |
| See the reference guide on building for more information: http://hbase.apache.org/book.html#build |
| </message> |
| </requireJavaVersion> |
| <bannedDependencies> |
| <excludes> |
| <exclude>xerces:xercesImpl</exclude> |
| </excludes> |
| <message>We avoid adding our own Xerces jars to the classpath, see HBASE-16340.</message> |
| </bannedDependencies> |
| </rules> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-checkstyle-plugin</artifactId> |
| </plugin> |
| <plugin> |
| <artifactId>maven-assembly-plugin</artifactId> |
| <configuration> |
| <!--Defer to the hbase-assembly sub-module. It does all assembly. |
| We have dedicated assembly module because of |
| http://maven.apache.org/plugins/maven-assembly-plugin/faq.html#module-binaries |
| --> |
| <skipAssembly>true</skipAssembly> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
| <profiles> |
| <!-- this profile should be activated for release builds --> |
| <profile> |
| <id>release</id> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.rat</groupId> |
| <artifactId>apache-rat-plugin</artifactId> |
| <executions> |
| <execution> |
| <phase>package</phase> |
| <goals> |
| <goal>check</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-enforcer-plugin</artifactId> |
| <version>${enforcer.version}</version> |
| <dependencies> |
| <dependency> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>extra-enforcer-rules</artifactId> |
| <version>${extra.enforcer.version}</version> |
| </dependency> |
| </dependencies> |
| <configuration> |
| <rules> |
| <enforceBytecodeVersion> |
| <maxJdkVersion>${compileSource}</maxJdkVersion> |
| <message>HBase has unsupported dependencies. |
| HBase requires that all dependencies be compiled with version ${compileSource} or earlier |
| of the JDK to properly build from source. You appear to be using a newer dependency. You can use |
| either "mvn -version" or "mvn enforcer:display-info" to verify what version is active. |
| Non-release builds can temporarily build with a newer JDK version by setting the |
| 'compileSource' property (eg. mvn -DcompileSource=1.8 clean package). |
| </message> |
| <ignoreClasses> |
| <ignoreClass>module-info</ignoreClass> |
| </ignoreClasses> |
| </enforceBytecodeVersion> |
| </rules> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| <!-- this profile should match the name of the release profile in the root asf pom --> |
| <profile> |
| <id>apache-release</id> |
| <build> |
| <plugins> |
| <!-- This should insert itself in place of the normal deploy plugin and then |
| handle either closing or dropping the staging repository for us depending |
| on if the build succeeds. |
| --> |
| <plugin> |
| <groupId>org.sonatype.plugins</groupId> |
| <artifactId>nexus-staging-maven-plugin</artifactId> |
| <version>1.6.8</version> |
| <extensions>true</extensions> |
| <configuration> |
| <nexusUrl>https://repository.apache.org/</nexusUrl> |
| <serverId>apache.releases.https</serverId> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| |
| <profile> |
| <id>clover</id> |
| <activation> |
| <activeByDefault>false</activeByDefault> |
| <property> |
| <name>clover</name> |
| </property> |
| </activation> |
| <properties> |
| <cloverDatabase>${project.build.directory}/clover/code-coverage.db</cloverDatabase> |
| </properties> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.openclover</groupId> |
| <artifactId>clover-maven-plugin</artifactId> |
| <configuration> |
| <cloverDatabase>${cloverDatabase}</cloverDatabase> |
| <cloverMergeDatabase>${cloverDatabase}</cloverMergeDatabase> |
| <outputDirectory>${project.build.directory}/clover</outputDirectory> |
| <targetPercentage>50%</targetPercentage> |
| <alwaysReport>true</alwaysReport> |
| <generateHistorical>false</generateHistorical> |
| <generateHtml>true</generateHtml> |
| <generateXml>true</generateXml> |
| <includesTestSourceRoots>true</includesTestSourceRoots> |
| <includesAllSourceRoots>false</includesAllSourceRoots> |
| <includes> |
| <include>**/org/apache/**/*.java</include> |
| </includes> |
| <excludes> |
| <exclude>**/src/main/assembly/**/*</exclude> |
| <exclude>hbase-operator-tools-assembly/**/*</exclude> |
| </excludes> |
| </configuration> |
| <executions> |
| <execution> |
| <id>clover-setup</id> |
| <goals> |
| <goal>setup</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| <pluginManagement> |
| <plugins> |
| <plugin> |
| <groupId>org.openclover</groupId> |
| <artifactId>clover-maven-plugin</artifactId> |
| <version>${clover-maven-plugin.version}</version> |
| </plugin> |
| </plugins> |
| </pluginManagement> |
| </build> |
| </profile> |
| <profile> |
| <id>sonar</id> |
| <activation> |
| <activeByDefault>false</activeByDefault> |
| <property> |
| <name>sonar</name> |
| </property> |
| </activation> |
| <properties> |
| <sonar.core.codeCoveragePlugin>clover</sonar.core.codeCoveragePlugin> |
| <sonar.clover.version>${clover-maven-plugin.version}</sonar.clover.version> |
| <sonar.clover.reportPath>${project.build.directory}/clover/clover.xml</sonar.clover.reportPath> |
| <sonar.surefire.reportsPath>${project.build.directory}/surefire-reports</sonar.surefire.reportsPath> |
| <sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis> |
| <sonar.exclusions>hbase-operator-tools-assembly/**/*,**/pom.xml</sonar.exclusions> |
| </properties> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.sonarsource.scanner.maven</groupId> |
| <artifactId>sonar-maven-plugin</artifactId> |
| </plugin> |
| </plugins> |
| <pluginManagement> |
| <plugins> |
| <plugin> |
| <groupId>org.sonarsource.scanner.maven</groupId> |
| <artifactId>sonar-maven-plugin</artifactId> |
| <version>${sonar-maven-plugin.version}</version> |
| </plugin> |
| </plugins> |
| </pluginManagement> |
| </build> |
| </profile> |
| </profiles> |
| </project> |