<?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 http://maven.apache.org/xsd/decoration-1.8.0.xsd"
  name="Maven">
  <version position="none" />

  <skin>
    <groupId>org.apache.maven.skins</groupId>
    <artifactId>maven-fluido-skin</artifactId>
    <version>${fluidoVersion}</version><!-- modify pom.xml property if necessary -->
  </skin>

  <edit>${project.scm.url}</edit>

  <custom>
    <fluidoSkin>
      <sourceLineNumbersEnabled>true</sourceLineNumbersEnabled>
      <googleSearch>
        <sitesearch>https://maven.apache.org</sitesearch>
      </googleSearch>
    </fluidoSkin>
  </custom>
  
  <body>
    <links>
      <item name="Download" href="/download.cgi" />
      <item name="Get Sources" href="/scm.html" />
    </links>
    <breadcrumbs>
      <item name="Maven"  href="https://maven.apache.org/index.html" />
    </breadcrumbs>

    <menu>
      <item name="Welcome" href="/index.html"/>
      <item name="License" href="https://www.apache.org/licenses/"/>
    </menu>
 
    <menu name="About Maven">
      <item name="What is Maven?" href="/what-is-maven.html"/>
      <item name="Features" href="/maven-features.html"/>
      <item name="Download" href="/download.html"/>
      <item name="Use" href="/users/index.html" collapse="true">
        <item name="Install" href="/install.html"/>
        <item name="Run" href="/run.html"/>
        <item name="Configure" href="/configure.html"/>
        <item name="IDE Integration" href="/ide.html"/>
        <item name="Support and Training" href="/support-and-training.html"/>
      </item>
      <item name="Release Notes" href="/docs/history.html"/>
      <!--  <item name="Powered By" href="/powered-by-m2.html"/> -->
    </menu>

    <menu name="Documentation">
      <item name="Maven Plugins" href="/plugins/index.html" />
      <item name="Index (category)" href="/guides/index.html" />

      <item name="User Centre" href="/users/index.html" collapse="true">
        <item name="Maven in 5 Minutes" href="/guides/getting-started/maven-in-five-minutes.html" />
        <item name="Getting Started Guide" href="/guides/getting-started/index.html" collapse="true">
          <item name="The Build Lifecycle" href="/guides/introduction/introduction-to-the-lifecycle.html" />
          <item name="The POM" href="/guides/introduction/introduction-to-the-pom.html" />
          <item name="Profiles" href="/guides/introduction/introduction-to-profiles.html" />
          <item name="Standard Directory Layout" href="/guides/introduction/introduction-to-the-standard-directory-layout.html" />
          <item name="Dependency Mechanism" href="/guides/introduction/introduction-to-dependency-mechanism.html" collapse="true">
            <item name="Optional &amp; Exclusion" href="/guides/introduction/introduction-to-optional-and-excludes-dependencies.html" />
          </item>
        </item>
        <!--
        <item name="Build Cookbook" href="/users/cookbook/index.html"/>
        -->
        <item name="Getting Help" href="/users/getting-help.html"/>
        <item name="Running Maven" href="/run-maven/index.html" />
        <item name="Configuring Plugins" href="/guides/mini/guide-configuring-plugins.html" collapse="true">
          <item name="Plugin Prefix Resolution" href="/guides/introduction/introduction-to-plugin-prefix-mapping.html" />
        </item>
        <item name="Creating a site" href="/guides/mini/guide-site.html" collapse="true">
          <item name="Markup Formats" href="/doxia/references/index.html" />
          <item name="Snippet Macro" href="/guides/mini/guide-snippet-macro.html" />
        </item>
        <item name="Archetypes" href="/guides/introduction/introduction-to-archetypes.html" collapse="true">
          <item name="Creating Archetypes" href="/guides/mini/guide-creating-archetypes.html" />
        </item>
        <item name="Repositories" href="/guides/introduction/introduction-to-repositories.html" collapse="true">
          <item name="Local" href="/guides/mini/guide-3rd-party-jars-local.html" />
          <item name="Remote" href="/guides/mini/guide-3rd-party-jars-remote.html" />
          <item name="SUN Jars" href="/guides/mini/guide-coping-with-sun-jars.html" />
          <item name="Authenticated HTTPS" href="/guides/mini/guide-repository-ssl.html" />
          <item name="Relocation" href="/guides/mini/guide-relocation.html" />
        </item>
        <item name="Guides" href="/guides/mini/index.html" collapse="true">
          <item name="Configuring for Reproducible Builds" href="/guides/mini/guide-reproducible-builds.html" />
          <item name="Creating Assemblies" href="/guides/mini/guide-assemblies.html" />
          <item name="Configuring Archive Plugins" href="/guides/mini/guide-archive-configuration.html" />
          <item name="Configuring Maven" href="/guides/mini/guide-configuring-maven.html" />
          <item name="Mirror Settings" href="/guides/mini/guide-mirror-settings.html" />
          <item name="Deployment and Security Settings" href="/guides/mini/guide-deployment-security-settings.html" />
          <item name="Generating Sources" href="/guides/mini/guide-generating-sources.html" />
          <item name="Working with Manifests" href="/guides/mini/guide-manifest.html" />
          <item name="Maven Classloading" href="/guides/mini/guide-maven-classloading.html" />
          <item name="Using Modules" href="/guides/mini/guide-multiple-modules.html" />
          <item name="Using Repositories" href="/guides/mini/guide-multiple-repositories.html" />
          <item name="Using Proxies" href="/guides/mini/guide-proxies.html" />
          <item name="Using Release Plugin" href="/guides/mini/guide-releasing.html" />
          <item name="Using Ant" href="/guides/mini/guide-using-ant.html" />
          <item name="Using Modello" href="/guides/mini/guide-using-modello.html" />
          <item name="Using Extensions" href="/guides/mini/guide-using-extensions.html" />
          <item name="Building for Different Environments" href="/guides/mini/guide-building-for-different-environments.html" />
          <item name="Using Toolchains" href="/guides/mini/guide-using-toolchains.html" />
          <item name="Encrypting Passwords" href="/guides/mini/guide-encryption.html" />
          <item name="HTTP Connection Settings" href="/guides/mini/guide-http-settings.html" />
          <item name="Alternative Wagon Providers" href="/guides/mini/guide-wagon-providers.html" />
          <item name="Building JDK 1.4 Projects Using JDK 1.5" href="/guides/mini/guide-building-jdk14-on-jdk15.html" />
          <item name="Configuring Default Mojo Executions" href="/guides/mini/guide-default-execution-ids.html" />
        </item>
        <item name="Settings Reference" href="/settings.html" /> <!-- TODO: all references should be collected under another area instead/as well, reconsider -->
        <item name="POM Reference" href="/pom.html" />
        <item name="FAQ" href="/general.html"/>
      </item>
      <item name="Plugin Developer Centre" href="/plugin-developers/index.html" collapse="true">
        <item name="Introduction" href="/guides/introduction/introduction-to-plugins.html" />
        <item name="Your First Mojo" href="/guides/plugin/guide-java-plugin-development.html" />
        <item name="Your First Report Mojo" href="/guides/plugin/guide-java-report-plugin-development.html" />
        <item name="Testing Plugins" href="/plugin-developers/plugin-testing.html" />
        <item name="Documenting Plugins" href="/plugin-developers/plugin-documenting.html" />
        <item name="Plugins Cookbook" href="/plugin-developers/cookbook/index.html" collapse="true">
          <item name="Build Time" href="/plugin-developers/cookbook/add-build-time-to-manifest.html" />
          <item name="SVN Revision" href="/plugin-developers/cookbook/add-svn-revision-to-manifest.html" />
          <item name="Attach Source + Javadoc" href="/plugin-developers/cookbook/attach-source-javadoc-artifacts.html" />
          <item name="Assembly" href="/plugin-developers/cookbook/generate-assembly.html" />
          <item name="Plexus Javadoc to Plexus Annotations" href="/plugin-developers/cookbook/plexus-plugin-upgrade.html" />
          <item name="Using JSR-330" href="/maven-jsr330.html" />
        </item>
        <item name="Mojo API" href="/developers/mojo-api-specification.html" />
        <item name="Common Bugs and Pitfalls" href="/plugin-developers/common-bugs.html" />
        <item name="Maven Lifecycle Extensions" href="/examples/maven-3-lifecycle-extensions.html" />
      </item>
      <item name="Maven Central Repository" href="/repository/index.html" collapse="true">
        <item name="Maintaining your Metadata" href="/project-faq.html" />
        <item name="Guide to Uploading Artifacts" href="/repository/guide-central-repository-upload.html" />
        <item name="Fixing Metadata" href="/repository/central-metadata.html" />
        <item name="Central Index" href="/repository/central-index.html" />
      </item>
      <item name="Maven Developer Centre" href="/developers/index.html" collapse="true">
        <item name="Guide to Helping with Maven" href="/guides/development/guide-helping.html" />
        <item name="Code Style and Conventions" href="/developers/conventions/code.html" />
        <item name="JIRA Convention" href="/developers/conventions/jira.html" />
        <item name="Git Convention" href="/developers/conventions/git.html" />
        <item name="Developing Maven" href="/guides/development/guide-maven-development.html" collapse="true">
          <item name="Building Maven" href="/guides/development/guide-building-maven.html"/>
        </item>
        <item name="Release Process" href="/developers/release/index.html" collapse="true">
          <item name="Common Procedure" href="/developers/release/maven-project-release-procedure.html" />
          <item name="Maven Core" href="/developers/release/maven-core-release.html" />
          <item name="Parent POM" href="/developers/release/parent-pom-release.html" />
          <item name="GPG Keys" href="/developers/release/pmc-gpg-keys.html" />
        </item>
        <item name="Deploy Maven Website" href="/developers/website/index.html" collapse="true">
          <item name="Components Documentation" href="developers/website/deploy-component-reference-documentation.html" />
          <item name="Component Helper" href="/developers/website/component-reference-documentation-helper.html" />
        </item>
        <item name="Committers" href="/developers/welcome-to-new-committers.html" collapse="true">
          <item name="Environment" href="/developers/committer-environment.html"/>
          <item name="Settings" href="/developers/committer-settings.html"/>
          <item name="Plugins Retirement Plan" href="/developers/retirement-plan-plugins.html"/>
          <item name="Maven Dependency Policies" href="/developers/dependency-policies.html"/>
          <item name="Compatibility Plan" href="/developers/compatibility-plan.html"/>
        </item>
      </item>
      <item name="Books and Resources" href="/articles.html" />
      <item name="Security" href="/security.html" />
    </menu>

    <menu name="Community">
      <item name="Community Overview" href="/community.html" />
      <item name="Project Roles" href="/project-roles.html" />
      <item name="How to Contribute" href="/guides/development/guide-helping.html" />
      <item name="Getting Help" href="/users/getting-help.html" />
      <item name="Issue Management" href="/issue-management.html" />
      <item name="Getting Maven Source" href="/scm.html" />
      <item name="The Maven Team" href="/team.html" />
    </menu>
  </body>
</project>
