<?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
http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-hdds</artifactId>
    <version>0.4.0-SNAPSHOT</version>
  </parent>
  <artifactId>hadoop-hdds-docs</artifactId>
  <version>0.4.0-SNAPSHOT</version>
  <description>Apache Hadoop HDDS/Ozone Documentation</description>
  <name>Apache Hadoop HDDS/Ozone Documentation</name>
  <packaging>jar</packaging>

  <dependencies>

  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <version>1.6.0</version>
        <executions>
          <execution>
            <goals>
              <goal>exec</goal>
            </goals>
            <phase>compile</phase>
          </execution>
        </executions>
        <configuration>
          <executable>dev-support/bin/generate-site.sh</executable>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <configuration>
          <excludes>
            <exclude>themes/ozonedoc/static/js/bootstrap.min.js</exclude>
            <exclude>themes/ozonedoc/static/js/jquery.min.js</exclude>
            <exclude>themes/ozonedoc/static/css/bootstrap-theme.min.css
            </exclude>
            <exclude>themes/ozonedoc/static/css/bootstrap.min.css.map</exclude>
            <exclude>themes/ozonedoc/static/css/bootstrap.min.css</exclude>
            <exclude>themes/ozonedoc/static/css/bootstrap-theme.min.css.map
            </exclude>
            <exclude>
              themes/ozonedoc/static/fonts/glyphicons-halflings-regular.svg
            </exclude>
            <exclude>themes/ozonedoc/layouts/index.html</exclude>
            <exclude>themes/ozonedoc/theme.toml</exclude>
          </excludes>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
