<?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>
  <parent>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-project</artifactId>
    <version>3.3.0-SNAPSHOT</version>
    <relativePath>../hadoop-project</relativePath>
  </parent>
  <artifactId>hadoop-tools</artifactId>
  <version>3.3.0-SNAPSHOT</version>
  <description>Apache Hadoop Tools</description>
  <name>Apache Hadoop Tools</name>
  <packaging>pom</packaging>

  <modules>
    <module>hadoop-streaming</module>
    <module>hadoop-distcp</module>
    <module>hadoop-dynamometer</module>
    <module>hadoop-archives</module>
    <module>hadoop-archive-logs</module>
    <module>hadoop-rumen</module>
    <module>hadoop-gridmix</module>
    <module>hadoop-datajoin</module>
    <module>hadoop-tools-dist</module>
    <module>hadoop-extras</module>
    <module>hadoop-pipes</module>
    <module>hadoop-openstack</module>
    <module>hadoop-sls</module>
    <module>hadoop-resourceestimator</module>
    <module>hadoop-azure</module>
    <module>hadoop-aws</module>
    <module>hadoop-kafka</module>
    <module>hadoop-azure-datalake</module>
    <module>hadoop-aliyun</module>
    <module>hadoop-fs2img</module>
  </modules>

  <build>
    <plugins>
      <plugin>
        <artifactId>maven-deploy-plugin</artifactId>
        <configuration>
          <skip>true</skip>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <configuration>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
