911 lines
37 KiB
XML
911 lines
37 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!--
|
|
Licensed 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. See accompanying LICENSE file.
|
|
-->
|
|
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
<modelVersion>4.0.0</modelVersion>
|
|
<groupId>org.apache.hadoop</groupId>
|
|
<artifactId>hadoop-main</artifactId>
|
|
<version>3.5.0-SNAPSHOT</version>
|
|
<description>Apache Hadoop Main</description>
|
|
<name>Apache Hadoop Main</name>
|
|
<packaging>pom</packaging>
|
|
|
|
<dependencyManagement>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>com.cenqua.clover</groupId>
|
|
<artifactId>clover</artifactId>
|
|
<!-- Use the version needed by maven-clover-plugin -->
|
|
<version>3.0.2</version>
|
|
</dependency>
|
|
</dependencies>
|
|
</dependencyManagement>
|
|
|
|
<distributionManagement>
|
|
<repository>
|
|
<id>${distMgmtStagingId}</id>
|
|
<name>${distMgmtStagingName}</name>
|
|
<url>${distMgmtStagingUrl}</url>
|
|
</repository>
|
|
<snapshotRepository>
|
|
<id>${distMgmtSnapshotsId}</id>
|
|
<name>${distMgmtSnapshotsName}</name>
|
|
<url>${distMgmtSnapshotsUrl}</url>
|
|
</snapshotRepository>
|
|
<site>
|
|
<id>apache.website</id>
|
|
<url>scpexe://people.apache.org/www/hadoop.apache.org/docs/r${project.version}</url>
|
|
</site>
|
|
</distributionManagement>
|
|
|
|
<repositories>
|
|
<repository>
|
|
<id>${distMgmtSnapshotsId}</id>
|
|
<name>${distMgmtSnapshotsName}</name>
|
|
<url>${distMgmtSnapshotsUrl}</url>
|
|
</repository>
|
|
<repository>
|
|
<id>repository.jboss.org</id>
|
|
<url>https://repository.jboss.org/nexus/content/groups/public/</url>
|
|
<snapshots>
|
|
<enabled>false</enabled>
|
|
</snapshots>
|
|
</repository>
|
|
</repositories>
|
|
|
|
<licenses>
|
|
<license>
|
|
<name>Apache-2.0</name>
|
|
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
|
|
</license>
|
|
</licenses>
|
|
|
|
<organization>
|
|
<name>Apache Software Foundation</name>
|
|
<url>https://www.apache.org</url>
|
|
</organization>
|
|
|
|
<properties>
|
|
<!-- required as child projects with different version can't use ${project.version} -->
|
|
<hadoop.version>3.5.0-SNAPSHOT</hadoop.version>
|
|
|
|
<docker.image>apache/hadoop:${project.version}</docker.image>
|
|
|
|
<distMgmtSnapshotsId>apache.snapshots.https</distMgmtSnapshotsId>
|
|
<distMgmtSnapshotsName>Apache Development Snapshot Repository</distMgmtSnapshotsName>
|
|
<distMgmtSnapshotsUrl>https://repository.apache.org/content/repositories/snapshots</distMgmtSnapshotsUrl>
|
|
<distMgmtStagingId>apache.staging.https</distMgmtStagingId>
|
|
<distMgmtStagingName>Apache Release Distribution Repository</distMgmtStagingName>
|
|
<distMgmtStagingUrl>https://repository.apache.org/service/local/staging/deploy/maven2</distMgmtStagingUrl>
|
|
|
|
<!-- platform encoding override -->
|
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
|
|
|
<!-- maven plugin versions -->
|
|
<maven-deploy-plugin.version>2.8.1</maven-deploy-plugin.version>
|
|
<maven-site-plugin.version>3.9.1</maven-site-plugin.version>
|
|
<maven-stylus-skin.version>1.5</maven-stylus-skin.version>
|
|
<maven-antrun-plugin.version>1.7</maven-antrun-plugin.version>
|
|
<maven-assembly-plugin.version>2.4</maven-assembly-plugin.version>
|
|
<maven-dependency-plugin.version>3.0.2</maven-dependency-plugin.version>
|
|
<maven-enforcer-plugin.version>3.5.0</maven-enforcer-plugin.version>
|
|
<restrict-imports.enforcer.version>2.0.0</restrict-imports.enforcer.version>
|
|
<maven-javadoc-plugin.version>3.0.1</maven-javadoc-plugin.version>
|
|
<maven-gpg-plugin.version>1.5</maven-gpg-plugin.version>
|
|
<maven-remote-resources-plugin.version>1.5</maven-remote-resources-plugin.version>
|
|
<maven-resources-plugin.version>3.0.1</maven-resources-plugin.version>
|
|
<apache-rat-plugin.version>0.12</apache-rat-plugin.version>
|
|
<wagon-ssh.version>2.4</wagon-ssh.version>
|
|
<clover-maven-plugin.version>4.4.1</clover-maven-plugin.version>
|
|
<maven-bundle-plugin.version>2.5.0</maven-bundle-plugin.version>
|
|
<lifecycle-mapping.version>1.0.0</lifecycle-mapping.version>
|
|
<maven-checkstyle-plugin.version>3.1.0</maven-checkstyle-plugin.version>
|
|
<checkstyle.version>8.29</checkstyle.version>
|
|
<dependency-check-maven.version>7.1.1</dependency-check-maven.version>
|
|
<spotbugs.version>4.2.2</spotbugs.version>
|
|
<spotbugs-maven-plugin.version>4.2.0</spotbugs-maven-plugin.version>
|
|
<jsonschema2pojo-maven-plugin.version>1.1.1</jsonschema2pojo-maven-plugin.version>
|
|
<maven-compiler-plugin.version>3.10.1</maven-compiler-plugin.version>
|
|
<cyclonedx.version>2.7.10</cyclonedx.version>
|
|
<docker-maven-plugin.version>0.29.0</docker-maven-plugin.version>
|
|
|
|
<shell-executable>bash</shell-executable>
|
|
|
|
<leveldbjni.group>org.fusesource.leveldbjni</leveldbjni.group>
|
|
</properties>
|
|
|
|
<modules>
|
|
<module>hadoop-project</module>
|
|
<module>hadoop-project-dist</module>
|
|
<module>hadoop-assemblies</module>
|
|
<module>hadoop-maven-plugins</module>
|
|
<module>hadoop-common-project</module>
|
|
<module>hadoop-hdfs-project</module>
|
|
<module>hadoop-yarn-project</module>
|
|
<module>hadoop-mapreduce-project</module>
|
|
<module>hadoop-tools</module>
|
|
<module>hadoop-dist</module>
|
|
<module>hadoop-minicluster</module>
|
|
<module>hadoop-client-modules</module>
|
|
<module>hadoop-build-tools</module>
|
|
<module>hadoop-cloud-storage-project</module>
|
|
</modules>
|
|
|
|
<build>
|
|
<pluginManagement>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-dependency-plugin</artifactId>
|
|
<version>${maven-dependency-plugin.version}</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>io.fabric8</groupId>
|
|
<artifactId>docker-maven-plugin</artifactId>
|
|
<version>${docker-maven-plugin.version}</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-enforcer-plugin</artifactId>
|
|
<version>${maven-enforcer-plugin.version}</version>
|
|
<configuration>
|
|
<rules>
|
|
<requireMavenVersion>
|
|
<version>[3.0.2,)</version>
|
|
</requireMavenVersion>
|
|
<requireJavaVersion>
|
|
<version>[1.8,)</version>
|
|
</requireJavaVersion>
|
|
</rules>
|
|
</configuration>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>de.skuzzle.enforcer</groupId>
|
|
<artifactId>restrict-imports-enforcer-rule</artifactId>
|
|
<version>${restrict-imports.enforcer.version}</version>
|
|
</dependency>
|
|
</dependencies>
|
|
<executions>
|
|
<execution>
|
|
<id>banned-illegal-imports</id>
|
|
<phase>process-sources</phase>
|
|
<goals>
|
|
<goal>enforce</goal>
|
|
</goals>
|
|
<configuration>
|
|
<rules>
|
|
<restrictImports>
|
|
<includeTestCode>true</includeTestCode>
|
|
<reason>Use hadoop-thirdparty shaded instead of curator shaded</reason>
|
|
<bannedImports>
|
|
<bannedImport>org.apache.curator.shaded.**</bannedImport>
|
|
</bannedImports>
|
|
</restrictImports>
|
|
<restrictImports>
|
|
<includeTestCode>true</includeTestCode>
|
|
<reason>Use hadoop-common provided Sets rather than Guava provided Sets</reason>
|
|
<bannedImports>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.collect.Sets</bannedImport>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.collect.Sets.**</bannedImport>
|
|
</bannedImports>
|
|
</restrictImports>
|
|
<restrictImports>
|
|
<includeTestCode>true</includeTestCode>
|
|
<reason>Use hadoop-common provided Lists rather than Guava provided Lists</reason>
|
|
<bannedImports>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.collect.Lists</bannedImport>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.collect.Lists.**</bannedImport>
|
|
</bannedImports>
|
|
</restrictImports>
|
|
<restrictImports>
|
|
<includeTestCode>true</includeTestCode>
|
|
<reason>Use hadoop-annotation provided VisibleForTesting rather than the one provided by Guava</reason>
|
|
<bannedImports>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.annotations.VisibleForTesting</bannedImport>
|
|
</bannedImports>
|
|
</restrictImports>
|
|
<restrictImports>
|
|
<includeTestCode>true</includeTestCode>
|
|
<reason>Use alternatives to Guava common classes</reason>
|
|
<bannedImports>
|
|
<bannedImport>com.google.common.**</bannedImport>
|
|
</bannedImports>
|
|
</restrictImports>
|
|
<restrictImports>
|
|
<includeTestCode>true</includeTestCode>
|
|
<reason>Use alternative to Guava provided BaseEncoding</reason>
|
|
<bannedImports>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.io.BaseEncoding</bannedImport>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.io.BaseEncoding.**</bannedImport>
|
|
</bannedImports>
|
|
</restrictImports>
|
|
<restrictImports>
|
|
<includeTestCode>true</includeTestCode>
|
|
<reason>Use java.nio.charset.StandardCharsets rather than Guava provided Charsets</reason>
|
|
<bannedImports>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.base.Charsets</bannedImport>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.base.Charsets.**</bannedImport>
|
|
</bannedImports>
|
|
</restrictImports>
|
|
<restrictImports>
|
|
<includeTestCode>true</includeTestCode>
|
|
<reason>Use alternative to Guava provided Optional</reason>
|
|
<bannedImports>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.base.Optional</bannedImport>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.base.Optional.**</bannedImport>
|
|
</bannedImports>
|
|
</restrictImports>
|
|
<restrictImports>
|
|
<includeTestCode>true</includeTestCode>
|
|
<reason>Use alternative to Guava provided Function</reason>
|
|
<bannedImports>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.base.Function</bannedImport>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.base.Function.**</bannedImport>
|
|
</bannedImports>
|
|
</restrictImports>
|
|
<restrictImports>
|
|
<includeTestCode>true</includeTestCode>
|
|
<reason>Use alternative to Guava provided Predicate</reason>
|
|
<bannedImports>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.base.Predicate</bannedImport>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.base.Predicate.**</bannedImport>
|
|
</bannedImports>
|
|
</restrictImports>
|
|
<restrictImports>
|
|
<includeTestCode>true</includeTestCode>
|
|
<reason>Use alternative to Guava provided Supplier</reason>
|
|
<bannedImports>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.base.Supplier</bannedImport>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.base.Supplier.**</bannedImport>
|
|
</bannedImports>
|
|
</restrictImports>
|
|
<restrictImports>
|
|
<includeTestCode>true</includeTestCode>
|
|
<reason>Use alternative to Guava provided ImmutableListMultimap</reason>
|
|
<bannedImports>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.collect.ImmutableListMultimap</bannedImport>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.collect.ImmutableListMultimap.**</bannedImport>
|
|
</bannedImports>
|
|
</restrictImports>
|
|
<restrictImports>
|
|
<includeTestCode>true</includeTestCode>
|
|
<reason>Use hadoop-common provided Preconditions rather than Guava provided</reason>
|
|
<bannedImports>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.base.Preconditions</bannedImport>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.base.Preconditions.**</bannedImport>
|
|
</bannedImports>
|
|
</restrictImports>
|
|
<restrictImports>
|
|
<includeTestCode>true</includeTestCode>
|
|
<reason>Use Fasterxml Jackson 2 dependency in place of org.codehaus Jackson 1</reason>
|
|
<bannedImports>
|
|
<bannedImport>org.codehaus.jackson.**</bannedImport>
|
|
</bannedImports>
|
|
</restrictImports>
|
|
<restrictImports>
|
|
<includeTestCode>true</includeTestCode>
|
|
<reason>Use HttpServlet APIs instead</reason>
|
|
<bannedImports>
|
|
<bannedImport>org.glassfish.grizzly</bannedImport>
|
|
<bannedImport>org.glassfish.grizzly.**</bannedImport>
|
|
</bannedImports>
|
|
</restrictImports>
|
|
<restrictImports>
|
|
<includeTestCode>true</includeTestCode>
|
|
<reason>Use slf4j based Logger</reason>
|
|
<bannedImports>
|
|
<bannedImport>org.apache.commons.logging.**</bannedImport>
|
|
</bannedImports>
|
|
</restrictImports>
|
|
</rules>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-assembly-plugin</artifactId>
|
|
<version>${maven-assembly-plugin.version}</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-deploy-plugin</artifactId>
|
|
<version>${maven-deploy-plugin.version}</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.rat</groupId>
|
|
<artifactId>apache-rat-plugin</artifactId>
|
|
<version>${apache-rat-plugin.version}</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-antrun-plugin</artifactId>
|
|
<version>${maven-antrun-plugin.version}</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-site-plugin</artifactId>
|
|
<version>${maven-site-plugin.version}</version>
|
|
<dependencies>
|
|
<dependency><!-- add support for ssh/scp -->
|
|
<groupId>org.apache.maven.wagon</groupId>
|
|
<artifactId>wagon-ssh</artifactId>
|
|
<version>${wagon-ssh.version}</version>
|
|
</dependency>
|
|
</dependencies>
|
|
</plugin>
|
|
<!--This plugin's configuration is used to store Eclipse m2e settings only.
|
|
It has no influence on the Maven build itself.-->
|
|
<plugin>
|
|
<groupId>org.eclipse.m2e</groupId>
|
|
<artifactId>lifecycle-mapping</artifactId>
|
|
<version>${lifecycle-mapping.version}</version>
|
|
<configuration>
|
|
<lifecycleMappingMetadata>
|
|
<pluginExecutions>
|
|
<pluginExecution>
|
|
<pluginExecutionFilter>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-antrun-plugin</artifactId>
|
|
<versionRange>[1.7,)</versionRange>
|
|
<goals>
|
|
<goal>run</goal>
|
|
</goals>
|
|
</pluginExecutionFilter>
|
|
<action>
|
|
<ignore></ignore>
|
|
</action>
|
|
</pluginExecution>
|
|
<pluginExecution>
|
|
<pluginExecutionFilter>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-resources-plugin</artifactId>
|
|
<versionRange>[2.2,)</versionRange>
|
|
<goals>
|
|
<goal>testResources</goal>
|
|
<goal>resources</goal>
|
|
</goals>
|
|
</pluginExecutionFilter>
|
|
<action>
|
|
<ignore></ignore>
|
|
</action>
|
|
</pluginExecution>
|
|
<pluginExecution>
|
|
<pluginExecutionFilter>
|
|
<groupId>org.apache.avro</groupId>
|
|
<artifactId>avro-maven-plugin</artifactId>
|
|
<versionRange>[1.5.3,)</versionRange>
|
|
<goals>
|
|
<goal>schema</goal>
|
|
<goal>protocol</goal>
|
|
</goals>
|
|
</pluginExecutionFilter>
|
|
<action>
|
|
<ignore></ignore>
|
|
</action>
|
|
</pluginExecution>
|
|
<pluginExecution>
|
|
<pluginExecutionFilter>
|
|
<groupId>org.codehaus.mojo.jspc</groupId>
|
|
<artifactId>jspc-maven-plugin</artifactId>
|
|
<versionRange>[2.0-alpha-3,)</versionRange>
|
|
<goals>
|
|
<goal>compile</goal>
|
|
</goals>
|
|
</pluginExecutionFilter>
|
|
<action>
|
|
<ignore></ignore>
|
|
</action>
|
|
</pluginExecution>
|
|
<pluginExecution>
|
|
<pluginExecutionFilter>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-dependency-plugin</artifactId>
|
|
<versionRange>[2.4,)</versionRange>
|
|
<goals>
|
|
<goal>copy-dependencies</goal>
|
|
<goal>build-classpath</goal>
|
|
</goals>
|
|
</pluginExecutionFilter>
|
|
<action>
|
|
<ignore></ignore>
|
|
</action>
|
|
</pluginExecution>
|
|
<pluginExecution>
|
|
<pluginExecutionFilter>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>exec-maven-plugin</artifactId>
|
|
<versionRange>[1.2,)</versionRange>
|
|
<goals>
|
|
<goal>exec</goal>
|
|
</goals>
|
|
</pluginExecutionFilter>
|
|
<action>
|
|
<ignore></ignore>
|
|
</action>
|
|
</pluginExecution>
|
|
<pluginExecution>
|
|
<pluginExecutionFilter>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-jar-plugin</artifactId>
|
|
<versionRange>[2.3.1,)</versionRange>
|
|
<goals>
|
|
<goal>test-jar</goal>
|
|
</goals>
|
|
</pluginExecutionFilter>
|
|
<action>
|
|
<ignore></ignore>
|
|
</action>
|
|
</pluginExecution>
|
|
</pluginExecutions>
|
|
</lifecycleMappingMetadata>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.openclover</groupId>
|
|
<artifactId>clover-maven-plugin</artifactId>
|
|
<version>${clover-maven-plugin.version}</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.felix</groupId>
|
|
<artifactId>maven-bundle-plugin</artifactId>
|
|
<version>${maven-bundle-plugin.version}</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-checkstyle-plugin</artifactId>
|
|
<version>${maven-checkstyle-plugin.version}</version>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>org.apache.hadoop</groupId>
|
|
<artifactId>hadoop-build-tools</artifactId>
|
|
<version>${hadoop.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.puppycrawl.tools</groupId>
|
|
<artifactId>checkstyle</artifactId>
|
|
<version>${checkstyle.version}</version>
|
|
</dependency>
|
|
</dependencies>
|
|
<configuration>
|
|
<configLocation>checkstyle/checkstyle.xml</configLocation>
|
|
<suppressionsLocation>checkstyle/suppressions.xml</suppressionsLocation>
|
|
<includeTestSourceDirectory>true</includeTestSourceDirectory>
|
|
<failOnViolation>false</failOnViolation>
|
|
<outputFile>${project.build.directory}/test/checkstyle-errors.xml</outputFile>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.owasp</groupId>
|
|
<artifactId>dependency-check-maven</artifactId>
|
|
<version>${dependency-check-maven.version}</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>com.github.spotbugs</groupId>
|
|
<artifactId>spotbugs-maven-plugin</artifactId>
|
|
<version>${spotbugs-maven-plugin.version}</version>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>com.github.spotbugs</groupId>
|
|
<artifactId>spotbugs</artifactId>
|
|
<version>${spotbugs.version}</version>
|
|
</dependency>
|
|
</dependencies>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.jsonschema2pojo</groupId>
|
|
<artifactId>jsonschema2pojo-maven-plugin</artifactId>
|
|
<version>${jsonschema2pojo-maven-plugin.version}</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-compiler-plugin</artifactId>
|
|
<version>${maven-compiler-plugin.version}</version>
|
|
</plugin>
|
|
</plugins>
|
|
</pluginManagement>
|
|
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-enforcer-plugin</artifactId>
|
|
<inherited>false</inherited>
|
|
<executions>
|
|
<execution>
|
|
<id>clean</id>
|
|
<goals>
|
|
<goal>enforce</goal>
|
|
</goals>
|
|
<phase>pre-clean</phase>
|
|
</execution>
|
|
<execution>
|
|
<id>default</id>
|
|
<goals>
|
|
<goal>enforce</goal>
|
|
</goals>
|
|
<phase>validate</phase>
|
|
</execution>
|
|
<execution>
|
|
<id>site</id>
|
|
<goals>
|
|
<goal>enforce</goal>
|
|
</goals>
|
|
<phase>pre-site</phase>
|
|
</execution>
|
|
<execution>
|
|
<id>enforce-property</id>
|
|
<goals>
|
|
<goal>enforce</goal>
|
|
</goals>
|
|
<configuration>
|
|
<rules>
|
|
<requireProperty>
|
|
<property>hadoop.version</property>
|
|
<message>You must set a hadoop.version to be the same as ${project.version}</message>
|
|
<regex>${project.version}</regex>
|
|
<regexMessage>The hadoop.version property should be set and should be ${project.version}.</regexMessage>
|
|
</requireProperty>
|
|
</rules>
|
|
<fail>true</fail>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.rat</groupId>
|
|
<artifactId>apache-rat-plugin</artifactId>
|
|
<configuration>
|
|
<excludes>
|
|
<exclude>.gitattributes</exclude>
|
|
<exclude>.gitignore</exclude>
|
|
<exclude>.git/**</exclude>
|
|
<exclude>.github/pull_request_template.md</exclude>
|
|
<exclude>.idea/**</exclude>
|
|
<exclude>**/build/**</exclude>
|
|
<exclude>**/patchprocess/**</exclude>
|
|
<exclude>**/*.js</exclude>
|
|
<exclude>licenses/**</exclude>
|
|
<exclude>licenses-binary/**</exclude>
|
|
<exclude>dev-support/docker/pkg-resolver/packages.json</exclude>
|
|
<exclude>dev-support/docker/pkg-resolver/platforms.json</exclude>
|
|
<exclude>**/target/**</exclude>
|
|
</excludes>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-site-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>attach-descriptor</id>
|
|
<goals>
|
|
<goal>attach-descriptor</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.felix</groupId>
|
|
<artifactId>maven-bundle-plugin</artifactId>
|
|
<inherited>true</inherited>
|
|
<extensions>true</extensions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-checkstyle-plugin</artifactId>
|
|
<version>${maven-checkstyle-plugin.version}</version>
|
|
</plugin>
|
|
<plugin>
|
|
<!-- OWASP's dependency-check plugin will scan the third party
|
|
dependencies of this project for known CVEs (security
|
|
vulnerabilities against them). It will produce a report
|
|
in target/dependency-check-report.html. To invoke, run
|
|
'mvn dependency-check:aggregate'. Note that this plugin
|
|
requires maven 3.1.1 or greater.
|
|
-->
|
|
<groupId>org.owasp</groupId>
|
|
<artifactId>dependency-check-maven</artifactId>
|
|
<version>${dependency-check-maven.version}</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>com.github.spotbugs</groupId>
|
|
<artifactId>spotbugs-maven-plugin</artifactId>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.cyclonedx</groupId>
|
|
<artifactId>cyclonedx-maven-plugin</artifactId>
|
|
<version>${cyclonedx.version}</version>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
|
|
<reporting>
|
|
<excludeDefaults>true</excludeDefaults>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-javadoc-plugin</artifactId>
|
|
<version>${maven-javadoc-plugin.version}</version>
|
|
<inherited>false</inherited>
|
|
<reportSets>
|
|
<reportSet>
|
|
<id>aggregate</id>
|
|
<configuration>
|
|
<maxmemory>1024m</maxmemory>
|
|
<quiet>true</quiet>
|
|
<verbose>false</verbose>
|
|
<source>${maven.compile.source}</source>
|
|
<charset>${maven.compile.encoding}</charset>
|
|
<reportOutputDirectory>${project.build.directory}/site</reportOutputDirectory>
|
|
<destDir>hadoop-project/api</destDir>
|
|
<!-- Non-public APIs -->
|
|
<excludePackageNames>org.apache.hadoop.authentication*,org.apache.hadoop.mapreduce.v2.proto,org.apache.hadoop.yarn.proto,org.apache.hadoop.yarn.server*,org.apache.hadoop.yarn.webapp*</excludePackageNames>
|
|
<groups>
|
|
<group>
|
|
<title>Common</title>
|
|
<packages>org.apache.hadoop*</packages>
|
|
</group>
|
|
<group>
|
|
<title>HDFS</title>
|
|
<packages>org.apache.hadoop.hdfs*</packages>
|
|
</group>
|
|
<group>
|
|
<title>MapReduce</title>
|
|
<packages>org.apache.hadoop.mapred*</packages>
|
|
</group>
|
|
<group>
|
|
<title>YARN</title>
|
|
<packages>org.apache.hadoop.yarn*</packages>
|
|
</group>
|
|
</groups>
|
|
<doclet>org.apache.hadoop.classification.tools.IncludePublicAnnotationsStandardDoclet</doclet>
|
|
<docletArtifacts>
|
|
<docletArtifact>
|
|
<groupId>org.apache.hadoop</groupId>
|
|
<artifactId>hadoop-annotations</artifactId>
|
|
<version>${project.version}</version>
|
|
</docletArtifact>
|
|
</docletArtifacts>
|
|
<useStandardDocletOptions>true</useStandardDocletOptions>
|
|
|
|
<!-- switch on dependency-driven aggregation -->
|
|
<includeDependencySources>false</includeDependencySources>
|
|
|
|
<dependencySourceIncludes>
|
|
<!-- include ONLY dependencies I control -->
|
|
<dependencySourceInclude>org.apache.hadoop:hadoop-annotations</dependencySourceInclude>
|
|
</dependencySourceIncludes>
|
|
|
|
</configuration>
|
|
<reports>
|
|
<report>aggregate</report>
|
|
</reports>
|
|
</reportSet>
|
|
</reportSets>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-dependency-plugin</artifactId>
|
|
<version>${maven-dependency-plugin.version}</version>
|
|
<reportSets>
|
|
<reportSet>
|
|
<reports>
|
|
<report>analyze-report</report>
|
|
</reports>
|
|
</reportSet>
|
|
</reportSets>
|
|
</plugin>
|
|
</plugins>
|
|
</reporting>
|
|
|
|
<profiles>
|
|
<profile>
|
|
<id>src</id>
|
|
<activation>
|
|
<activeByDefault>false</activeByDefault>
|
|
</activation>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-assembly-plugin</artifactId>
|
|
<inherited>false</inherited>
|
|
<executions>
|
|
<execution>
|
|
<id>src-dist</id>
|
|
<phase>package</phase>
|
|
<goals>
|
|
<goal>single</goal>
|
|
</goals>
|
|
<configuration>
|
|
<appendAssemblyId>false</appendAssemblyId>
|
|
<attach>false</attach>
|
|
<finalName>hadoop-${project.version}-src</finalName>
|
|
<outputDirectory>hadoop-dist/target</outputDirectory>
|
|
<!-- Not using descriptorRef and hadoop-assembly dependency -->
|
|
<!-- to avoid making hadoop-main to depend on a module -->
|
|
<descriptors>
|
|
<descriptor>hadoop-assemblies/src/main/resources/assemblies/hadoop-src.xml</descriptor>
|
|
</descriptors>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-antrun-plugin</artifactId>
|
|
<inherited>false</inherited>
|
|
<executions>
|
|
<execution>
|
|
<id>src-dist-msg</id>
|
|
<phase>package</phase>
|
|
<goals>
|
|
<goal>run</goal>
|
|
</goals>
|
|
<configuration>
|
|
<target>
|
|
<echo/>
|
|
<echo>Hadoop source tar available at: ${basedir}/hadoop-dist/target/hadoop-${project.version}-src.tar.gz</echo>
|
|
<echo/>
|
|
</target>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
|
|
<profile>
|
|
<id>dist</id>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.cyclonedx</groupId>
|
|
<artifactId>cyclonedx-maven-plugin</artifactId>
|
|
<version>${cyclonedx.version}</version>
|
|
<executions>
|
|
<execution>
|
|
<phase>package</phase>
|
|
<goals>
|
|
<goal>makeBom</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
<configuration>
|
|
<outputFormat>xml</outputFormat>
|
|
</configuration>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
|
|
<profile>
|
|
<id>sign</id>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-gpg-plugin</artifactId>
|
|
<version>${maven-gpg-plugin.version}</version>
|
|
<executions>
|
|
<execution>
|
|
<id>sign-artifacts</id>
|
|
<phase>verify</phase>
|
|
<goals>
|
|
<goal>sign</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
<profile>
|
|
<id>clover</id>
|
|
<activation>
|
|
<activeByDefault>false</activeByDefault>
|
|
<property>
|
|
<name>clover</name>
|
|
</property>
|
|
</activation>
|
|
<properties>
|
|
<cloverDatabase>${project.build.directory}/clover/hadoop-coverage.db</cloverDatabase>
|
|
<!-- NB: This additional parametrization is made in order
|
|
to be able to re-define these properties with "-Dk=v" maven options.
|
|
By some reason the expressions declared in clover
|
|
docs like "${maven.clover.generateHtml}" do not work in that way.
|
|
However, the below properties are confirmed to work: e.g.
|
|
-DcloverGenHtml=false switches off the Html generation.
|
|
The default values provided here exactly correspond to Clover defaults, so
|
|
the behavior is 100% backwards compatible. -->
|
|
<cloverAlwaysReport>true</cloverAlwaysReport>
|
|
<cloverGenHtml>true</cloverGenHtml>
|
|
<cloverGenXml>true</cloverGenXml>
|
|
<cloverGenHistorical>false</cloverGenHistorical>
|
|
</properties>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.openclover</groupId>
|
|
<artifactId>clover-maven-plugin</artifactId>
|
|
<configuration>
|
|
<includesAllSourceRoots>false</includesAllSourceRoots>
|
|
<includesTestSourceRoots>true</includesTestSourceRoots>
|
|
<cloverDatabase>${cloverDatabase}</cloverDatabase>
|
|
<targetPercentage>50%</targetPercentage>
|
|
<outputDirectory>${project.build.directory}/clover</outputDirectory>
|
|
<alwaysReport>${cloverAlwaysReport}</alwaysReport>
|
|
<generateHtml>${cloverGenHtml}</generateHtml>
|
|
<generateXml>${cloverGenXml}</generateXml>
|
|
<generateHistorical>${cloverGenHistorical}</generateHistorical>
|
|
<excludes>
|
|
<exclude>**/examples/**/*.java</exclude>
|
|
<exclude>**/hamlet/*.java</exclude>
|
|
<exclude>**/ha/proto/*.java</exclude>
|
|
<exclude>**/protocol/proto/*.java</exclude>
|
|
<exclude>**/compiler/generated/*.java</exclude>
|
|
<exclude>**/protobuf/*.java</exclude>
|
|
<exclude>**/v2/proto/*.java</exclude>
|
|
<exclude>**/yarn/proto/*.java</exclude>
|
|
<exclude>**/security/proto/*.java</exclude>
|
|
<exclude>**/tools/proto/*.java</exclude>
|
|
<exclude>**/hs/proto/*.java</exclude>
|
|
</excludes>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<id>clover-setup</id>
|
|
<phase>process-sources</phase>
|
|
<goals>
|
|
<goal>setup</goal>
|
|
</goals>
|
|
</execution>
|
|
<execution>
|
|
<id>clover</id>
|
|
<phase>test</phase>
|
|
<goals>
|
|
<goal>clover</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
<profile>
|
|
<id>aarch64</id>
|
|
<properties>
|
|
<leveldbjni.group>org.openlabtesting.leveldbjni</leveldbjni.group>
|
|
</properties>
|
|
<activation>
|
|
<os>
|
|
<family>linux</family>
|
|
<arch>aarch64</arch>
|
|
</os>
|
|
</activation>
|
|
</profile>
|
|
|
|
<profile>
|
|
<id>docker-build</id>
|
|
<properties>
|
|
<docker.image>${user.name}/hadoop:${project.version}</docker.image>
|
|
</properties>
|
|
</profile>
|
|
</profiles>
|
|
</project>
|