<?xml version="1.0" encoding="UTF-8"?>

<!--
  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.
-->

<project xmlns="http://maven.apache.org/DECORATION/1.8.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/DECORATION/1.8.0 https://maven.apache.org/xsd/decoration-1.8.0.xsd">
  <skin>
    <groupId>org.apache.maven.skins</groupId>
    <artifactId>maven-fluido-skin</artifactId>
    <version>1.9</version>
  </skin>
  <body>
    <menu name="Overview">
      <item name="Introduction" href="index.html" />
      <item name="Goals" href="plugin-info.html" />
      <item name="Usage" href="usage.html" />
      <!-- <item name="FAQ" href="faq.html"/> -->
      <!-- According to https://issues.apache.org/jira/browse/MNGSITE-152 -->
      <item name="License" href="https://www.apache.org/licenses/" />
      <item name="Download" href="download.html" />
    </menu>
    <!-- <menu name="Examples"> -->
    <!-- <item name="Basic multi module setup" href="examples/base-jlink-example.html"/> -->
    <!-- </menu> -->
  </body>
</project>
